
Voici une liste des différents codes source et syntaxes courante utilisées en C# dans Godot engine.
Ce fichier est un canevas qui s'étoffera au fur et à mesure de mes expérimentations sur ce moteur de jeu.
Godot Engine & Csharp
Écran & Images
L'affichage
-
Connaître la taille de la fenêtre
Screensize = GetViewportRect().Size;
-
Changer la taille de la fenêtre
TODO ;
- passage en Plein écran ou mode fenêtré
TODO ;
Les Images
-
Afficher une image
TODO ;
-
Effets sur les images
-
Effectuer un effet miroir horizontal
TODO ;
- Changer la teinte d'une image
TODO ;
-
- Obtenir les dimensions d'une image
TODO ;
Les sprites
-
Gérer des listes de sprites
TODO ;
-
obtenir la taille d'un (Node) Sprite
Sprite sprite = (Sprite)getNode("sprite"); float shipWidth = sprite.Texture.GetWidth(); float shipHeidth = sprite.Texture.GetHeight();
-
obtenir la taille d'un (Node) AnimatedSprite - Méthode 1
AnimatedSprite animatedSprite = (AnimatedSprite)getNode("animatedSprite"); float shipWidth = animatedSprite.Frames.GetFrame("up",0).GetWidth(); float shipHeidth = animatedSprite.Frames.GetFrame("up",0).GetHeight();
- obtenir la taille d'un (Node) AnimatedSprite - Méthode 2
var player_sprite = player.GetNode("Sprite") as Sprite; GD.Print(player_sprite.Texture.GetSize() * player_sprite.Scale);
Les Polices de caractères
- calculer la taille d'un texte dans une police donnée
TODO ;
Les Textes
- Afficher un texte dans une police donnée
TODO ;
Le GamePlay
Gestion des composants / entités
- Récupérer une référence vers un noeud
private Node2D startPosition; startPosition = (Node2D) GetNode("StartPosition");
-
supprimer un composant / une entité
QueueFree();
-
charger une scene dynamiquement et l'instancier
PackedScene Sword = ResourceLoader.Load("res://Prefabs/Sword.tscn") as PackedScene; var swordObject = sword.Instance() as Sword;
-
Créer et gérer un signal
AddUserSignal("hit"); // connexion en interne // Note: OnStartButtonPressed est une méthode fonction de l'objet ou est exécuté le connect Connect("hit", this, "OnPlayerBodyEntered"); /// // connexion depuis un autre object startButton.Connect("pressed", this, "OnStartButtonPressed"); /// // émettre le signal (depuis un autre fonction) EmitSignal("hit");
-
exemple d'implémentation d'un évènement sur un bouton
using Godot; // IMPORTANT: the name of the class MUST match the filename exactly. // this is case sensitive! public class sayhello : Panel { public void _OnButtonPressed() { var label = (Label)GetNode("Label"); label.Text = "HELLO!"; } public override void _Ready() { GetNode("Button").Connect("pressed", this, nameof(_OnButtonPressed)); } }
Le Delta time
-
le delta time est directement passé à la fonction _Process
public class CustomLabel : Label { private int _accum; public override void _Process(float delta) { _accum++; Text = _accum.ToString(); } }
Gestion des entrées utilisateur
Le clavier
- intercepter une touche du clavier
if (Input.IsActionPressed("ui_up")) { velocity.y -= 1; }
La souris
-
Afficher le curseur de la souris
TODO ;
-
Connaître l'état des boutons de la souris
TODO ;
- Connaître la position de la souris
TODO ;
Physique
Gravité & Inertie
- déplacement selon un objet ayant un angle de rotation (en degré)
TODO ;
L'audio
Musique
- charger et jouer une musique
private AudioStreamPlayer2D music; music = (AudioStreamPlayer2D) GetNode("Music"); music.Stop(); music.Play();
Sons
- charger et jouer un son
private AudioStreamPlayer2D deathSound; deathSound = (AudioStreamPlayer2D) GetNode("DeathSound"); deathSound.Play(); deathSound.Stop();
Système
Fichiers
- lire un fichier texte
TODO ;
Divers
Gestion de l'application
-
Quitter l'application
TODO ;
- Exemple d'initialisation d'une application
TODO ;
Publication
Sous Windows
TODO
Sous Android
TODO
Sous IOS
TODO
Sous MacOS
TODO
Sous Linux
TODO