Minilop Retroware

Tutoriais de shoot 'em up · Parte 3 de 12

Shmup vertical - Parte 3 - Preparar a nave espacial do jogador

2 de agosto de 2022

Agora que temos a área de jogo preparada, vamos criar a nave espacial do jogador e trabalhar no código para a controlar.

MENU: EDITOR > SPRITES (tutorial para iniciantes)

Esta é a minha, mas sente-te à vontade para ser criativo com a tua!

Captura de ecrã do tutorial

Vou acrescentar uma segunda frame para a nave, que será mostrada se o jogador usar a tecla THRUST para subir no ecrã. Terá apenas uma pequena chama de propulsão a sair da traseira da nave. A forma mais rápida de o fazer é:

M copiar a frame atual

I inserir uma nova frame

K colar a frame original

e depois editá-la:

Captura de ecrã do tutorial

Ok, isto chega para os gráficos por agora. A seguir vamos escrever código para controlar a nave espacial. As regras que quero são:

1) As teclas esquerda e direita para mover a nave para a esquerda e para a direita

2) Uma tecla Thrust que, quando premida, mova o jogador até meio do ecrã, mas que, quando solta, o jogador volte à deriva para o fundo. Quando thrust é premida, também queremos mostrar a Frame 001 para mostrar a chama de propulsão

Primeiro, vamos definir as nossas teclas; eu prefiro QAOP Space:

MENU: EDITOR > KEYBOARD CONTROLS (tutorial para iniciantes)

Captura de ecrã do tutorial

MENU: EVENTS > PLAYER (tutorial para iniciantes)

Para começar, vamos acrescentar algum script básico do MPAGD que trate do movimento:

EVENT PLAYER


						; COLOURS
						; =======================
SPRITEINK 69				; Bright Cyan ink

IF KEY UP				; Player presses up (thrust)
	LET FRAME = 1			; switch to the frame that shows jetflame
	IF Y > 80			; If player is below the 80 y pixel line
		SPRITEUP			; move player up
		SPRITEUP			; and up again (faster movement)
	ENDIF
ELSE						; if player is not pressing thrust
	LET FRAME = 0			; switch to the regular spaceship (no jetflame)
	SPRITEDOWN			; move player down
ENDIF

						; PLAYER MOVEMENT
						; ====================
IF KEY LEFT				; has player pressed LEFT?
	IF CANGOLEFT			; can the player move left?	
		SPRITELEFT		; yes, move player left
		SPRITELEFT		; and again (moves faster)
	ENDIF
ENDIF

IF KEY RIGHT				; has the player pressed RIGHT?			
	IF CANGORIGHT			; yes, can the player move right?				
		SPRITERIGHT		; yes, move player right
		SPRITERIGHT		; and again (moves faster)
	ENDIF									
ENDIF
						; BOUNDARY CHECK
						; ====================
IF Y >= BOTTOMEDGE		; has player gone beyond the bottom edge?
	LET Y = BOTTOMEDGE	; yes, keep them at the bottom edge
ENDIF

Pronto, já chega por agora; vamos compilar o jogo e ver como está a funcionar...

Sucesso! A nave consegue mover-se para a esquerda e para a direita, impulsionar-se para cima e voltar à deriva para baixo.

A seguir, vamos criar uma arma básica para o jogador que ele possa disparar

SEGUINTE: PARTE 4: A ARMA DO JOGADOR

Todos os tutoriais de shoot 'em up