Game Maker: Studio 2 - problemi "nuovi" e "vecchi"

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Gian
Newbie
Messaggi: 9
Iscritto il: 07/09/2016, 10:39
Uso: GM:Studio 2
Contatta:

Game Maker: Studio 2 - problemi "nuovi" e "vecchi"

Messaggio da Gian »

Buona sera a tutti,
è più di un anno che non lavoro con Game Maker Studio e quando sono tornato a scaricare il programma ho trovato solo la versione 2. Adattandomi velocemente alla nuova grafica, ho ripreso un vecchio progetto di un gioco stile "Metal Slug" e ho ritrovato alcuni problemi che avevo già anni fa e che spero mi possiate aiutare a risolvere.

Ho inserito nell'evento "step" le direttive per la gravità. Da quel momento non so che problema si sia venuto a creare ma nella posizione fermo il pg assume automaticamente direction=0 e mostra solamente lo sprite di destra. Questo mi è molto di intralcio per altri comandi(come sparare, saltare ecc...).

https://ibb.co/dsZyjv

Un ulteriore problema è il salto in sè(salto semplice, salto in avanti e salto indietro). Il mio pg dovrebbe compiere un movimento con relativo cambio di sprite una volta premuto il tasto "space". Avendo impostato il cambio sprite tramite l'evento "draw" il pg letteralmente scompare durante il salto per poi ricomparire solo quando raggiunge l'apice dello spostamento e nuovamente una volta toccata terra.
Di seguito il codice dell'evento "draw".

Codice: Seleziona tutto

if keyboard_check(vk_right){
	if keyboard_check(vk_space){
		if !place_free(x,y+1){
			vspeed=-9;
		}
		draw_sprite(pg_sal,0-12,x,y);
	}
	if keyboard_check(vk_shift){
		draw_sprite(pg_spa,0-12,x,y);
	}
	else{
		draw_sprite(pg_mov,0-12,x,y);
	}
}

if keyboard_check(vk_left){
	if keyboard_check(vk_space){
		if !place_free(x,y+1){
			vspeed=-9;
		}
		draw_sprite(pg_sal2,0-12,x,y);
	}
	if keyboard_check(vk_shift){
		draw_sprite(pg_spa2,0-12,x,y);
	}
	else{
		draw_sprite(pg_mov2,0-12,x,y);
	}
}

if speed=0{
	if direction=0{
		if keyboard_check(vk_space){
			if !place_free(x,y+1){
				vspeed=-9;
			}
			draw_sprite(pg_sal,0-12,x,y);
		}
		else{
			draw_sprite(pg_stand,0-12,x,y);
		}
	}
	if direction=180{
		if keyboard_check(vk_space){
			if !place_free(x,y+1){
				vspeed=-9;
			}
			draw_sprite(pg_sal2,0-12,x,y);
		}
		else{
		draw_sprite(pg_stand2,0-12,x,y);
		}
	}
}
Con questo codice il salto viene visualizzato solo se c'è anche un movimento verso destra o sinistra ma viene caricato lo sprite del movimento e non quello del salto.
Ho provato ad inserire il cambio sprite al cambio di velocità verticale come segue(sempre nell'evento "draw").

Codice: Seleziona tutto

if vspeed!=0{
	draw_sprite(pg_sal,0-12,x,y);
}
Ad essere sinceri, con questo codice il salto viene visualizzato alla perfezione ma ovviamente solamente rivolto a destra.
Ho tentato di imporre un "if position=0" e un seguente "if position=180" ma l'effetto è nullo, il pg riprende a svanire.

Spero possiate aiutarmi perché non ho più idee valide.
Spero di essere stato sufficientemente chiaro e vi ringrazio anticipatamente per l'aiuto!

Buona serata,
Gian.

Gian
Newbie
Messaggi: 9
Iscritto il: 07/09/2016, 10:39
Uso: GM:Studio 2
Contatta:

Re: Game Maker: Studio 2 - problemi "nuovi" e "vecchi"

Messaggio da Gian »

Buon pomeriggio,
volevo informarvi che sono riuscito a risolvere parte del problema cambiando totalmente metodo di scrittura su Game Maker.
Il problema del salto visualizzato solo con lo sprite rivolto a destra però continua a tormentarmi in quanto ho dovuto impostare il cambio img da "pg_stand" a "pg_sal" nella condizione "!vspeed=0" che non ammette altre condizioni(if direction=0 e if direction=180).
Qualcuno ha suggerimenti per impostare un cambio img senza dover usare come condizione la vspeed?

Grazie!
Gian

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 167 ospiti