Inseriamo i nemici

Andiamo nella schermata grafica, e ripetiamo il procedimento fatto nelle lezioni precedenti per inserire uno “sprite“,  possiamo ripetere tranquillamente le operazioni effettuate nella lezione n° 5, mi raccomando sempre di seguire tutti i passaggi, in particolar modo fare “crop” tenendo premuto il tasto “shift” sulla tastiera.

Dopo aver assegnato il punto d’ origine basso centrale, nella finestra “image point” click con tasto destro del mouse su “origin” e scegliete “Apply to whole animation“, questa è un’ operazione che va fatta sempre a tutta la grafica che inseriamo, la striscia di immagini del nemico è la seguente:

Inserito il nemico rinominatelo in “lumaca” e trascinatelo in modo da porlo sul terreno di una piattaforma.

Inserimento logiche per nemico in event sheet

Ora andiamo a dare delle logiche, se il nostro eroe “sprite“, se colpisce la lumaca su un fianco lampeggia e viene ferito, se invece salta sulla lumaca, essa morirà. per far lampeggiare il nostro eroe abbiamo bisogno del behavior “flash“, selezioniamo l’ eroe “non il box” ed andate ad aggiungere il behavior flash, se non ricordate come si fa nella lezione n°. 6 è spiegato dettagliatamente.

Fatto questo ritorniamo nel foglio “event sheet 1” e creiamo l’ evento: doppio click in una parte vuota dell’ “event sheet 1“, scegli “box“, scegli “on collision whit another object” in object clicca e scegli “lumaca

Questo evento si scatena appena con la “box” tocchiamo la “lumaca” da qualunque parte, creiamo ora dei sotto eventi per verificare se la “lumaca” viene colpita dall’ alto oppure dai lati.

Selezioniamo l’ evento appena creato e premiamo “s” sulla nostra tastiera, scegli “box“, scegli “is falling“.

Dobbiamo anche testare che la “box” sia effettivamente sopra al nemico, per evitare che la lumaca muoia se non colpita, ad esempio se camminando da una piattaforma alta, nell’ atterrare superiamo la lumaca su una piattaforma più in basso.

Clicchiamo col tasto destro quindi sulla condizione appena creata “is falling“, scegli “add another condition“, scegli “box“, scegli “compare y“, in comparision scegli “< less than“, in y coordinate scrivete “lumaca.Y“.

Coordinate X ed Y

Nei videogame i punti dello schermo sono decisi con 2 coordinate “x ed Y“, partono da zero nell’ angolo in alto a sinistra ed aumentano mentre ci si sposta in basso o verso destra, qundi, se la coordinata “Y” dell’ eroe “box” è inferiore a quella del nemico “lumaca” significa che effettivamente la lumaca è più in basso dell’ eroe. Adesso distruggeremo il nemico in caso l’eroe ci salti sopra e lo faremo anche rimbalzare.

Nel sotto evento click su “add action“, scegli “lumaca“, scegli “destroy“, click su “add action“, scegli “box“, scegli “set vector Y“, scrivi “-1200“.

Il “set vector y” dando il valore negativo “-1200” farà salire l’ oggetto “box” verso l’alto creando l’impressione del ribalzo e come dire “dopo che colpisci la lumaca dall’ alto verso il basso spostati di “-1200 pixel”, ricordate quanto detto sopra?? la coordinata y è inferiore in alto “parte da zero”, dunque in qualunque posizione sia il nostro eroe, se lo spostiamo con un valore degativo “-1200”, l’ eroe sale, con valore positivo “2000” l’ eroe andrà verso il basso.

Condizione Else

Cliccate col tasto destro sul margine della condizione “is falling“, “ho evidenziato in giallo il punto nell’ immagine sotto per semplificare” si aprirà un menu a tendina, andate su “add“, scegliete “add else“.

Else è una condizione speciale che accade nel caso le condizioni precedenti non si siano verificate, quindi andremo a dire che se andiamo con l’ eroe, “box” addosso alla lumaca dall’ alto la uccidiamo e sparirà, altrimenti “ELSE” fammi lampeggiare lo “sprite“, non la “box“.

Quindi click su “add action” di “else“, scegli “sprite“, scegli “flash“, e lasciate i valori cosi come ve li da il sistema, ma anche no, per capirne le meccaniche potete sbizzarrirvi e cambiare i valori giusto per vederne gli effetti, a questo punto potete vedere la completa istruzione di seguito:

Per il momento la lumaca è ferma ma non è un problema, nella lezione n°. 10 faremo il resto.