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

Article précédent Article suivant