Les bases de C#

Ma Motivation 💪
72%

Aujourd’hui, avec la formation udemy,  j’ai commencé à apprendre le C#. C’est un langage typé comme C et C++ donc ça va, j’en ai déjà fait.

La formation nous explique bien que nous allons apprendre deux langages. Le C# et le GDScript.

Le premier projet de jeu sera avec C#.

Voici un script très très simple :  

using Godot;
using System;

public partial class MonScript : Node3D
{
    // Called when the node enters the scene tree for the first time.
    public override void _Ready()
    {
   	 GD.Print("Salut à tous !");
    }

    // Called every frame. 'delta' is the elapsed time since the previous frame.
    public override void _Process(double delta)
    {
    }
}

Pour faire simple, Using Godot permet d’utiliser des fonctionnalités propres à Godot qui n’existe que dans Godot.

Using System Il permet d’écrire du C# peu importe le système ou l’outil utilisé.

MonScript est une class. La class, c’est ce qui représente l’objet. Elle a un nom (ici “MonScript” est le nom) et elle dérive de Node3D.

Quand une class dérive de quelque chose, elle acquiert les propriétés de l’objet en question. Dans l’exemple, la class MonScript dérive de Node3D donc elle peut utiliser les propriétés de celle-ci.

Comme le commentaire l’indique, public override void _Ready() est appelé qu’une seule fois tandis que _Process est appelé à chaque frame. Pour les comparer à d’autres fonctions de moteur de jeu, on peut dire que _Ready() est la fonction Start() et que _Process est la fonction Update().

Dans la fonction _Ready(), j’utilise GD.Print() pour afficher un message dans la console.

Notion importante que l’on retrouve en paramètre de la fonction _Process, le delta. Le delta est le temps qui s’écoule entre deux frames. C’est ce qui va nous permettre d’animer nos objets à la même vitesse peu importe l’ordinateur utilisé.

La formation apprend également les principaux types de variable comme int, float, bool et string. Pour ceux qui ne le savent pas :

Si on veut convertir un nombre en chaîne de caractère, nous pouvons utiliser .ToString();

Par exemple :

int nombre = 12;
string chaine = nombre.ToString();

Ici chaine est une chaîne de caractère qui contient “12”. Il faut bien différencier 12 et “12”, c’est très important. 12 est un int et “12” est un string. 

Nous pouvons faire l’inverse. 

Exemple :

string text = “1234”;
int nombre = int.Parse(text);

 

La variable nombre contient le nombre 1234.

On a appris à passer d’un int en float et vice-versa à l’aide du cast. Le cast permet de convertir une variable d’un type à un autre.

int nombre = 12.
float nbVirgule = (float)nombre + 2.12f;

La variable nbVirgule sera égale à 14.12.

Les fonctions

On a également vu les fonctions. Je vais trop détailler.

Voici un petit rappel :

public void DireSalut()
{
	GD.Print("Salut");
}

Pour l’appeler:

public override void _Ready()
{
	DireSalut();
}

GETTER / SETTER

Les Getter et Setter permettent de manipuler les variables d’une class.

public int GetNombre()
{
	return nombre;
}

public void SetNombre(int nb)
{
	nombre = nb;
}

GetNombre renvoie la valeur d’un nombre et SetNombre permet d’en définir sa valeur.

Si nous utilisons toutes les variables en public, le programme peut être beaucoup beaucoup moins sécurisant. Utiliser les getter et setter permet de contrôler l’entrée et sortie des variables.

Les Conditions

Les conditions s’utilisent de la même manière quand C et C++.

De même manière que pour ces paramètres de comparaison ( ==, !=, <=, >=, &&, ||).

Godot

Il est possible d’obtenir des variables éditables depuis l’inspecteur sans passer par le script. Pour cela il suffit d’utiliser [Export] devant une variable.

Par exemple :

[Export] int nombre = -30;
[Export] bool estAdmi = true;
[Export] string nom = “Eric”;

Les Tableaux

Un tableau sert à stocker plusieurs valeurs d’un même type. Pour définir un tableau en C# il suffit de faire int[] nomDuTableau. Il est également possible de le modifier depuis l’inspecteur grâce à [Export].

Exemple de tableau exporter sur l’inspecteur GODOT.

Important à savoir :

  • Pour connaître la taille d’un tableau : tableau.Length;
  • Pour trier un tableau : Array.Sort(tableau);

Les Boucles

Le principe des boucles s’exécute de la même façon en c et c++.

Voici des exemples de boucle :

for(int i = 0; i < tableau.Length; i++){...}
While(compteur < tableau.Length){...}

 

Il y a que le foreach que j’ai découvert. Il est vraiment très pratique pour les tableaux. Il permet de boucler sur un tableau sans en connaître le nombre d’éléments.

 

Par exemple:

Foreach(int element in tableau)
{
	GD.Print(element);
}

Nous en avons fini avec les bases de C#.  La prochaine fois, la formation va nous apprendre à utiliser le C# et GODOT avec un exemple concret.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut