Godot 3D

Jeux godot

** Godot 3D

Cette semaine découverte de Godot 3D. Pour cela on nous a proposer 3 jeux, 1 jeu ou on pourrait le retravailler en rajoutant des mécaniques, des modèles ou une nouvelles pièces mais on pouvait aussi crée un jeu en se basant sur 2 autres jeux qui sont Péril en Daiza ou le FPS du cours de Godot. Pour ma part j'ai choisi de retravailler le jeux qu'on nous proposais qui était 3D FPP Interaction Template.

Les objectifs de la semaine

Les objectifs de la semaine était :

  • Découvrir et expérimenter le moteur 3D de Godot
  • Découvrir et expérimenter les nœuds spécifiques à la 3D
  • Réaliser un premier jeu 3D relativement simple

On nous avez aussi demander d'importé des modèles de blender pour les adaptés à Godot.

La base du jeu

J'ai donc choisie de faire une autre pièce ou on pourrait faire des jumps et on devait arrivée à la fin avant la fin du temps impartie. J'ai donc commencer par faire une pièce ainsi que des plateformes très basiques. Puis j'ai eu envie de rajouter un panier de basket avec son ballon qu'on avait de base sur le jeu pour avoir un mini-jeu, je voulais que si le joueur marquait un panier du temps supplémentaire serai rajouter pour l'aider à finir le parkour.

Mécanique

J'ai quasiment réussi à mettre tous les fonctionnalités sauf le rajout du temps quand on marquait ni les plaquent qui pouvais disparaitre de temps en temps par faute de temps donc on a un Timer qui démarre dès qu'on est dans la pièce et si le temps arrive à la fin le joueur disparait et un message apparait pour nous dire qu'on a perdu et on nous propose de recommencer en appuyant sur une touche, si le joueur arrive à la fin du parkour alors un message apparait pour nous dire qu'on a gagner.

Voici le code pour mon "Jeu"

extends Node

onready var perdu = get_node("HUD/Game_over") onready var temps_jeux = get_node("HUD/Label_temps") onready var gagner = get_node("HUD/Gagner")

var platforme = ("world/Room/Plateforme22") var mort = false var Fin = false

func _ready(): $temps.start() func _process(delta): temps_jeux.set_text(str(int($temps.get_time_left()))) if Input.is_action_pressed("restart") && mort == true : get_tree().change_scene("res://Room2.tscn") if Input.is_action_pressed("avant"): $HUD/Commande.hide() func game_over(): $temps.stop() $Player.queue_free() perdu.show() mort = true func _on_temps_timeout(): panier() game_over() func win(): gagner.show() func Fini(body): if body.is_in_group("player"): $temps.stop() win() func panier(body): if body.is_in_group("balle"): print("panier") $temps.wait_time += 50

 06 déc. 2018 -  Sylvain Foulon - game design 2,   Godot