WIP. Space Words (II)

Submitted by tech4life on
Imagen de los controles del juego

Hemo añadido nuestro jugador, en este caso una nave espacial, a nuestra escena principal. 

También hemos añadido dos botones en pantalla, para movernos a la derecha o a la izquierda, que son los unicos movimientos que dejamos a nuestros jugadores.

En nuestra escena principal hemos añadido los botones para gestionar cuando se presionan y se sueltan:

func _on_button_right_pressed():
	move(1)


func _on_button_left_pressed():
	move(-1)


func _on_button_right_released():
	move(0)


func _on_button_left_released():
	move(0)

func move(direction):
	Globals.ismoving = direction

Y le pasamos el movimento, 0 parado, 1 derecha, -1 izquierda, a una clase Global que tenemos.

Luego en la escena de nuestro jugador, hemos añadido un script, en el cual, miramos en la función _physics_process si alguno de los botones esta pulsado o no.

En caso de estar pulsado a la derecha, movemos a la derecha hasta un limite, y si esta pulsado a la izquierda, lo mismo pero a la izquierda, indicando el limite.

func _physics_process(delta):
	movingPlayer(Globals.ismoving, delta)

func movingPlayer(movement, delta):
	if movement == 0 :
		pass
	else :
		if movement == 1 && position.x <= endX : 
			position.x = move_to(position.x, endX, speed * delta)
		elif movement == -1 && position.x >= startX :
			position.x = move_to(position.x, startX, speed * delta)
		
func move_to(current, to , step):
	var new = current
	# are we moving positive?
	if new < to:
		new += step
		if new > to: 
			new = to
	# are we moving negative?
	else:
		new -= step
		if new < to:
			new = to
	return new

Seguramente no es la manera más optima de implementar el movimiento del jugador, pero nos ha parecido una manera sencilla y educativa en la que ver los pasos necesarios para el movimiento.

 

Tags