- Introduction
- Initialisation du jeu
- Créer un terrain de jeu
- Programme primitif
- Travailler avec les cellules du terrain de jeu
- Travailler avec la couleur
- Boîtes de dialogue
- Méthodes utilitaires
- Limites du moteur de jeu
1. Introduction
Il y a trois étapes dans la mise en œuvre d'un jeu informatique par le développeur :- L'initialisation du jeu correspond à des actions préparatoires : définition de la taille et du dessin du terrain de jeu, création et installation des objets de jeu dans la position initiale, ainsi que d'autres actions qui doivent être effectuées au début du jeu.
- Processus de jeu. Cela inclut le mouvement des objets du jeu, les actions des joueurs, la comptabilisation des points gagnés, ainsi que d'autres actions qui doivent être effectuées à certains intervalles ou en appuyant sur des boutons.
- Fin du jeu. Cela inclut l'arrêt des animations, l'annonce de la victoire ou de la défaite et d'autres actions qui doivent être effectuées à la fin de la partie.
2. Initialisation du jeu
L'initialisation du jeu ne comprend que deux étapes :Étape 1 : créer la classe principale du jeu.
Pour développer votre jeu basé sur le moteur de jeu JavaRush, vous devez créer une classe et en hériter de la classe Game (com.javarush.engine.cell.Game). Cela donnera à votre classe la possibilité d'appeler des méthodes sur le moteur de jeu et la possibilité pour le moteur d'appeler vos méthodes. Exemple:import com.javarush.engine.cell.Game;
public class MySuperGame extends Game {
...
}
Étape 2 : remplacez la méthode initialize().
Dans cette méthode, toutes les actions nécessaires au démarrage du jeu auront lieu : création du terrain de jeu, création des objets de jeu, etc. Il vous suffit de déclarer cette méthode dans une classe qui hérite de la classe Game . Exemple:import com.javarush.engine.cell.Game;
public class MySuperGame extends Game {
@Override
public void initialize() {
// Тут выполняем все действия по инициализации игры и ее an objectов
}
}
La méthode initialize() est un analogue de la méthode main() : c'est là que tout le code écrit pour le jeu commence à être exécuté.
3. Créer un terrain de jeu
La création d’un terrain de jeu ne comprend également que deux étapes.Étape 1 : divisez le terrain de jeu en cellules.
L'ensemble du terrain de jeu est divisé en cellules par le moteur de jeu. La taille minimale est de 3x3, la taille maximale est de 100x100. L'écran de jeu a une taille constante. Il peut être divisé en différents nombres de cellules. Par exemple, largeur 7 et hauteur 9 :import com.javarush.engine.cell.Game;
public class MySuperGame extends Game {
@Override
public void initialize() {
// задали размер поля 7x9 клеток
setScreenSize(7, 9);
...
}
}
Lors de l'écriture d'un jeu, vous devrez peut-être obtenir la largeur et la hauteur actuelles du terrain de jeu. Les méthodes int getScreenWidth() et int getScreenHeight() sont utiles pour cela .
Étape 2 : Activez ou désactivez la grille (facultatif).
Si vous n'aimez pas la grille noire qui sépare les cellules sur le terrain de jeu, vous pouvez la désactiver. La méthode void showGrid(boolean isShow) active et désactive la grille séparant les cellules. Par défaut, la grille est affichée. Pour le désactiver, appelez cette méthode avec le paramètre false :showGrid(false);
Résultat:
showGrid(true);
4. Programme primitif
Exemple de programme :public class MySuperGame extends Game {
@Override
public void initialize() {
// Создаем игровое поле 3x3 клетки
setScreenSize(3, 3);
// Выключаем отображение сетки
showGrid(false);
// Меняем фон центральной клетки на синий, и отображаем в ней “Х”
setCellValueEx(1, 1, Color.BLUE, "X", Color.ORANGE, 50);
}
}
Dans cet exemple, la taille du terrain de jeu est définie sur 3x3, l'affichage de la grille est désactivé et un symbole « X » orange de la taille d'une demi-cellule est placé au centre sur un fond bleu. Ce sera la première chose que le joueur verra au démarrage du jeu.
5. Travailler avec les cellules du terrain de jeu
Le fait que nous puissions diviser le terrain de jeu en cellules est formidable, mais que pouvons-nous faire avec les cellules elles-mêmes ? Chaque cellule du terrain de jeu peut être définie :- couleur de la cellule (couleur d'arrière-plan de la cellule) ;
- texte (texte ou numéro);
- couleur du texte ;
- taille du texte en pourcentage par rapport à la taille de la cellule.
-
void setCellColor(int x, int y, Color color) — définit la couleur de la cellule avec les coordonnées (x, y) :
setCellColor(0, 0, Color.RED); setCellColor(3, 6, Color.BLACK); setCellColor(6, 8, Color.NONE);
-
Color getCellColor(int x, int y) - renvoie la couleur de la cellule avec les coordonnées (x, y) :
Color myColor = getCellColor(2, 0);
-
void setCellValue(int x, int y, String value) - place la valeur du texte dans la cellule avec les coordonnées (x, y) :
setCellValue(3, 3, "text"); setCellValue(0, 8, "W"); setCellValue(4, 1, "2222"); setCellValue(6, 6, "");
-
String getCellValue(int x, int y) - renvoie le texte contenu dans la cellule avec les coordonnées (x, y) :
String s = getCellValue(3, 3); System.out.println(getCellValue(4, 1));
-
void setCellTextSize(int x, int y, int size) - définit la taille du contenu de la cellule avec les coordonnées (x, y). size – hauteur du texte en pourcentage de la hauteur de la cellule :
setCellTextSize(2 , 0, 70); // 70% высоты клетки
-
int getCellTextSize(int x, int y) - renvoie la taille du contenu de la cellule avec les coordonnées (x, y) :
int size = getCellTextSize(2 , 0);
-
void setCellNumber(int x, int y, int value) - place la valeur numérique dans la cellule avec les coordonnées (x, y) :
setCellNumber(3, 3, 40); setCellNumber(0, 8, -8); setCellNumber(4, 1, 2222); setCellNumber(6, 6, 0);
-
int getCellNumber(int x, int y) - renvoie le nombre contenu dans la cellule avec les coordonnées (x, y). Si la cellule ne contient pas de nombre, renvoie 0 :
int i = getCellNumber(3, 3); System.out.println(getCellNumber(4, 1));
-
void setCellTextColor(int x, int y, Color color) — définit la couleur du contenu (texte) dans la cellule avec les coordonnées (x, y) :
setCellTextColor(2, 1, Color.GREEN); setCellTextColor(0, 1, Color.NONE);
-
Color getCellTextColor(int x, int y) - renvoie la couleur du contenu (texte) dans une cellule avec les coordonnées (x, y) :
Color textColor = getCellTextColor(1, 3);
-
void setCellValueEx(int x, int y, Color cellColor, String value) — définit la cellule avec les coordonnées (x, y), la couleur d'arrière-plan cellColor et la valeur du contenu :
setCellValueEx(0, 2, Color.BLUE, "56");
-
void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor) — définit la cellule avec les coordonnées (x, y) la couleur d'arrière-plan cellColor, la valeur du contenu et la couleur du contenu textColor :
setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN);
-
void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize); - définit la cellule avec les coordonnées (x, y), la couleur d'arrière-plan cellColor, la valeur du contenu, la couleur du contenu textColor et la taille du contenu textSize :
setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN, 70);
6. Travailler avec la couleur
Les couleurs du moteur de jeu sont contrôlées par l'énumération Color , qui contient des valeurs uniques pour 148 couleurs. Et aussi la valeur particulière NONE - absence de couleur. Exemple de travail avec la couleur :Color myColor = Color.WHITE; // переменной myColor присваивается белый цвет.
Color redColor = Color.RED; // переменной redColor присваивается красный цвет.
Color blueColor = Color.BLUE; // переменной blueColor присваивается синий цвет.
Parfois, vous souhaiterez peut-être obtenir une gamme de toutes les couleurs existantes. Pour ce faire, utilisez la méthode Values() . Par exemple:
// переменной colors присваивается массив, содержащий все доступные цвета.
Color[] colors = Color.values();
Obtenir le numéro de couleur dans la palette est très simple :
Color color = Color.RED;
int redIndex = color.ordinal(); // Номер красного цвета
int blueIndex = Color.BLUE.ordinal(); // Номер синего цвета
Vous pouvez également obtenir une couleur par son numéro :
// переменной color присваивается цвет с индексом 10 из enum Color.
Color color = Color.values()[10];
7. Boîtes de dialogue
A la fin de la partie, le joueur doit être informé de la victoire ou de la défaite. Il existe une méthode spéciale pour cela qui affiche une boîte de dialogue sur l'écran de jeu :void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)
Ici:
- cellColor — couleur d'arrière-plan de la boîte de dialogue ;
- message — texte du message ;
- textColor — couleur du texte du message ;
- textSize — taille du texte du message.
8. Méthodes utilitaires
Les nombres aléatoires sont souvent utilisés lors de l’écriture de jeux. Pour faciliter l'obtention de nombres aléatoires, vous pouvez utiliser les méthodes du moteur de récupération :- int getRandomNumber(int max) - renvoie un entier aléatoire de 0 à (max–1) inclus.
- int getRandomNumber(int min, int max) - renvoie un entier aléatoire de min à (max–1) inclus.
GO TO FULL VERSION