Jump to content
Rpg²S Forum

[RGSS]Come creare un battle system in tempo reale-l'attacco del player


Kingartur2
 Share

Recommended Posts

Prima di parlare dell'attacco pensiamo al damage, cioè quei piccoli numeretti che appaio su chi riceve il danno.

Nulla di più facile.

Andiamo in Game_Character precisamente nel def initialize e mettiamo

@damage = nil@critical = false@pop = false

in rispettiva metteremo anche i loro attr_accessor(ormai sapete come si mettono XD )

Quindi andiamo in Sprite_Character nel def update e mettiamo queste semplici righe di codice:

if @character.pop and @character.damage != nil  damage(@character.damage, @character.critical  @character.damage = nil  @character.critical = false  @character.pop = trueend

che tradotto significa:

se il pop del chara è su true e il danno del chara non è nullo effetua il damage e porta i valori allo stato iniziale

per non ripeterlo all'infinito.

il pop serve solo per fare dei damge più complessi(che poi vedremo).

 

 

Quindi ora possiamo parlare del vero attacco.

Iniziamo dal player:

Andiamo nel def update del player e mettiamo:

if Input.trigger?(Input::X)

cioè esegue tutto solo se premiamo A

poi esaminiamo dove andrebbe a ricadere l'attacco così

new_x = @x + (@direction == 6 ? 1 : @directiond == 4 ? -1 : 0) new_y = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)

cioè per x e y analizza la direzione e vede se aumentare o diminuire di uno coì si

ottiene la x e la y che si trova di fronte all'eroe.

Quindi dopo mettiamo

event = $game_map.check_event(new_x, new_y)

che ci dirà l'id dell'evento che si trova di fronte all'eroe

poi mettiamo:

if event != nil and $game_map.events[event].battler != nil

cioè se l'evento esiste ed è un mostro

$game_map.events[event].attack_effect(self.battler)$game_map.events[event].pop = trueself.animation_id = self.battler.animation1_id$game_map.event[event].animation_id = self.battler.animation2_idevent = nil

cioè come prima cosa infligge il danno poi attiva il pop per il poupop del danno e poi mette l'animazione all'eroe e all'evento.Poi mettiamo event a nil per sicurezza

 

 

Tutto fatto.

La prossima volta parleremo dell'attacco degli eventi

Edited by kingartur2

Per qualsiasi motivo non aprite questo spoiler.

 

 

Ho detto di non aprirlo !

 

 

Se lo apri ancora esplode il mondo.

 

 

Aaaaaa è un vizio.

 

 

Contento? Il mondo è esploso, sono tutti morti

per colpa della tua curiosità .

 

 

Vuoi che ti venga anche il morbillo, la varicella e l'AIDS???

 

 

O bravo ora sei un malato terminale e nessuno

ti puo curare, sono tutti morti !

 

 

Se clicchi ancora una volta il PC esplode.

 

 

E dai smettila !!

 

Uff!! Hai cliccato tante volte che ho dovuto sostituirlo con un codebox.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

http://s8.postimg.org/yntv9nxld/Banner.png

http://img204.imageshack.us/img204/8039/sccontest3octpl3.gif

Link to comment
Share on other sites

Be per fare il bs nelle sue funzioni principali altre 5 più o meno...poi se mi viene voglia ne faccio altre..

Per qualsiasi motivo non aprite questo spoiler.

 

 

Ho detto di non aprirlo !

 

 

Se lo apri ancora esplode il mondo.

 

 

Aaaaaa è un vizio.

 

 

Contento? Il mondo è esploso, sono tutti morti

per colpa della tua curiosità .

 

 

Vuoi che ti venga anche il morbillo, la varicella e l'AIDS???

 

 

O bravo ora sei un malato terminale e nessuno

ti puo curare, sono tutti morti !

 

 

Se clicchi ancora una volta il PC esplode.

 

 

E dai smettila !!

 

Uff!! Hai cliccato tante volte che ho dovuto sostituirlo con un codebox.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

http://s8.postimg.org/yntv9nxld/Banner.png

http://img204.imageshack.us/img204/8039/sccontest3octpl3.gif

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...