3 votes

Quelles sont les règles concernant le nom de la classe principale dans Haxe ?

Sur le page principale à haxe.org - il y a un jeu Rock Scissors Paper codé à l'intérieur d'une class Game .

J'ai téléchargé l'éditeur HaxeDevelop et créé un nouveau projet. Lorsque je suis allé dans le src/ de ce projet, il y avait un fichier Main.hx qui contenait ce squelette

package;

import js.Lib;

/**
 * ...
 * @author Terrence Brannon
 */
class Main 
{

    static function main() 
    {

    }

}

et je me demande si je dois changer la classe de Main a Game et où les règles pour nommer la classe d'entrée d'un projet Haxe sont documentées.

5voto

Justinfront Points 76

Les noms de classe doivent commencer par une majuscule et être suivis des lettres a-z ou A-Z (le trait de soulignement peut également être utilisé).

Vous définissez votre classe principale lorsque vous appelez la commande haxe depuis le terminal, suivie de paires de paramètres telles que le nom de la classe principale, -main Main

https://haxe.org/manual/compiler-usage.html

Vous pouvez placer votre classe dans un dossier et ajouter 'package folderName;' sur la ligne supérieure au-dessus de votre classe et ensuite vous pouvez l'appeler avec haxe.

haxe -main folderName.Main ...add other compiler property pairs.

Donc "Jeu" est un nom valide. Un détail important est que le programme Haxe nécessite une fonction statique de départ, toujours nommée 'main', qui peut être utilisée pour créer la classe.

class Game {
    static function main(){ new Game(); } // need a main static function.
    public function new(){
        // actual game class starts.
        trace( 'game started');
    }
}

Normalement, plutôt que d'écrire tous les paramètres du compilateur sur la ligne de commande, nous les mettons dans un fichier avec une extension .hxml, par exemple : compile.hxml.

https://haxe.org/manual/compiler-usage-hxml.html

Certaines boîtes à outils multiplateformes utilisent des définitions json ou xml à la place et parfois des outils pour les créer plutôt que d'exécuter directement le compilateur haxe, parce qu'ils font des choses supplémentaires comme placer tous vos actifs dans le dossier de sortie pour vous, et gérer des aspects comme les paramètres généraux pour cibler c++ ou js sans avoir à avoir différents fichiers hxml.

Par exemple, une bibliothèque graphique multiplateforme populaire pour les navigateurs, les ordinateurs de bureau et les téléphones mobiles est openfl ; elle décrit ses outils de construction ici :

https://lime.software/docs/command-line-tools/create-new-project/

Malheureusement, toutes les boîtes à outils pour jeux multi-cibles utilisent des processus de construction différents, mais les autres utilisateurs de haxe sont toujours heureux de vous expliquer.

Un bon endroit pour parler aux utilisateurs de Haxe est sur le serveur discord de Haxe, je pense que ce lien devrait probablement fonctionner :

https://discord.gg/Agt3sJA

La principale cible croisée - des boîtes à outils riches en graphiques (adaptées aux jeux) pour Haxe :

Pour faire du développement web traditionnel, vous pouvez cibler directement les js, mais Haxe fournit également certains frameworks tels que :

Et évidemment, vous pouvez utiliser Electron ( ou Krom voir Kha ) pour les applications nodejs. - https://github.com/tong/hxelectron

Je ne suis pas vraiment sûr des bibliothèques spécifiques PHP, Java, C#, Lua, Python à mentionner, mais des bibliothèques générales Haxe qui semblent être populaires et très utiles pour toutes les cibles :

Pas tout, mais un aperçu des liens utiles qui me viennent à l'esprit.

Pour des tutoriels généraux sur Haxe, il existe de nombreux endroits, mais un bon point de départ serait de travailler sur le livre de recettes.

1voto

Mark Knol Points 2238

Vous pouvez nommer votre classe de points d'entrée comme vous le souhaitez.

  • Si votre fichier s'appelle Main.hx vous devez l'exécuter avec haxe -main Main .
  • Si votre fichier s'appelle Game.hx, vous devez l'exécuter avec haxe -main Game .
  • Si votre fichier s'appelle Test.hx, vous devez l'exécuter avec haxe -main Test .
  • et cetera

Si vous utilisez FlashDevelop, vous devez définir ce fichier comme point d'entrée. Faites un clic droit dans le gestionnaire de projet et choisissez "Classe de document". Cela lui donnera aussi une icône différente (verdâtre). entry point in HaxeDevelop

Il n'existe pas de convention de dénomination standard, car cela peut dépendre de ce que fait votre application. J'ai vu Main, Application, Test mais aussi des noms plus fantaisistes.

https://haxe.org/manual/compiler-usage-hxml.html

Notez que vous ne pouvez pas utiliser un nom différent pour la fonction de point d'entrée statique à l'intérieur de la classe.
C'est toujours static function main() { } .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X