Diferencia entre revisiones de «Godot»
Línea 19: | Línea 19: | ||
[[Archivo:Godot1.gif|frame|none|Creació del projecte]] | [[Archivo:Godot1.gif|frame|none|Creació del projecte]] | ||
{{teoria|Els projectes de godot estan dins d'una carpeta que creem quan li donem nom. Podem seleccionar la ruta | {{teoria|Els projectes de godot estan dins d'una carpeta que creem quan li donem nom. Podem seleccionar la ruta on estarà. El projecte té un arxiu principal '''project.godot''' i altres '''.tscn''' que són les escenes. <br/>Una escena en Godot és qualsevol element del joc que té entitat pròpia. En el nostre cas el jugador, els enemics i la pantalla principal. La creació del player és la primera escena que anem a fer i quan es guarde tindrà un arxiu de nom '''Player.tscn'''. }} | ||
== L'escena del Player == | == L'escena del Player == |
Revisión del 12:28 11 ene 2019
Godot és un motor de jocs amb IDE per a programar-los. Si vols aprendre Godot, el millor és anar al manual oficial i després anar fent exemples i tutorials. Aquest article és un tutorial més, adaptat més o menys al nivell de 2on de la ESO i pensat per a que siga didàctic per a gent que no ha programat abans.
El teu primer joc
Anem a fer el joc per fases i explicarem el perquè de cadascuna.
Configuració inicial
El primer que tenim que fer és crear el projecte. Ens tenim que descarregar els recursos de la web oficial en aquest enllaç. Després, creem un projecte nou i descomprimim els recursos en la carpeta del projecte.
Dins de godot, tenim que fer que la pantalla tinga unes dimensions determinades de 480x720 i crear el jugador com un node Area2D amb nom Player:
Una escena en Godot és qualsevol element del joc que té entitat pròpia. En el nostre cas el jugador, els enemics i la pantalla principal. La creació del player és la primera escena que anem a fer i quan es guarde tindrà un arxiu de nom Player.tscn.
L'escena del Player
Animació
A continuació cal crear l'animació del node Player. En aquest cas, triem un AnimatedSprite al que donarem varis moviments. Amb l'opció Frames.
Per últim, el farem un poc més menut:
La forma de col·lisió
Ara toca definir la forma per la qual detectarà les col·lisions. En el nostre cas, la que més es sembla és la càpsula:
És important que, una vegada estan tots els nodes fills creats, bloquegem al node Player de manera que no es puga seleccionar nodes fills. Això es fa en aquest botó:
El moviment del Player
El nostre jugador es mourà amb les fletxes del teclat. Per aconseguir-ho, tenim que crear un script per al node que detecte el teclat i canvie la posició del node en la pantalla. Aquest és l'script:
extends Area2D
export (int) var speed # velocita del jugador (pixels/sec).
var screensize # mida de la pantalla
func _ready():
screensize = get_viewport_rect().size
func _process(delta):
var velocity = Vector2() # Vector de velocitat (x,y)
if Input.is_action_pressed("ui_right"):
velocity.x += 1
if Input.is_action_pressed("ui_left"):
velocity.x -= 1
if Input.is_action_pressed("ui_down"):
velocity.y += 1
if Input.is_action_pressed("ui_up"):
velocity.y -= 1
if velocity.length() > 0:
velocity = velocity.normalized() * speed
$AnimatedSprite.play() # Si hi ha moviment es mou
else:
$AnimatedSprite.stop() # Si no hi ha moviment para l'animació
position += velocity * delta # Calcula la posició
position.x = clamp(position.x, 0, screensize.x)
position.y = clamp(position.y, 0, screensize.y)