LUA / LOVE2D - Comment réaliser un menu classique ?
Bonjour,
Je cherche à créer un menu comme on en a en haut d'une fenêtre, du genre "fichier - édition - etc. - à propos".
Avec la gestion de fichiers, donc ouverture des popups ouvrir ou sauvegarder un fichier...
Pour le contexte, j'ai réalisé le parcours "Programmer une Dungeon Crawler Old School", durant lequel j'ai largement enrichi le concept de base, avec tout un tas de fonctionnalités (calcul d'affichage, de distance, d'éclairage, etc...). De fait, je compte produire un dungeon crawler avec monogame (ou autre), mais rester sur LUA, pour l'éditeur complet de niveau.
Et pas uniquement pour le chargement ou la sauvegarde des cartes, j'ai besoin de charger des sets de textures également.
Je vous l'ai dit, j'ai enrichi le bousin. Mais la version final du jeu utilisera des textures, pas des polygones (ce qui est bien plus simple, au final). D'ailleurs, je me demande si je vais pas tenter de pondre une version Amiga 🙂
@buissonolivier bonjour a toi. Je ne sais pas si tu as trouve une solution pour ton editeur.
Juste une petite idee : je decouperai l'ecran en 2 le haut pour le menu "Fichier Edition..." pour les options des menus j'utiliserai un canvas qui contiendrai l'ensemble des options de chaque menu. Et un canvas pour l'editeur. il me semble que c'est canvas en lua apres je ne sais pas pour d'autre language.
peut-etre que d'autre personnes te proposeront d'autre solution
bonne journee a toi et bon code
@buissonolivier voici un exemple apres a toi de completer le code pour repondre a tes besoins
local canvasEditor local canvasMenu local isFile=false locat isEdit=false local posCanvasMenuX=0 function love.load() canvasEditor=love.graphics.newCanvas(800,600) canvasMenu=love.graphics.newCanvas(60,100) love.graphics.setCanvas(canvasMenu) love.graphics.setColor(1,1,1) love.graphics.rectangle("fill",0,14,100,100) love.graphics.setCanvas() love.graphics.setCanvas(canvasEditor) love.graphics.setColor(0.2,1,1) love.graphics.rectangle("fill",0,0,800,550) love.graphics.setCanvas() end function love.update(dt) end function love.draw() love.graphics.setColor(1,1,1) love.graphics.print("Fichier",0,0) love.graphics.print("Edition",70,0) love.graphics.draw(canvasEditor,0,15) if isFile then love.graphics.draw(canvasMenu,posCanvasMenuX,5) end if isEdit then love.graphics.draw(canvasMenu,posCanvasMenuX,5) end end function love.keypressed(key) if key=="f" then isFile=not isFile posCanvasMenuX=0 if isEdit then isEdit=not isEdit end end if key=="e" then isEdit=not isEdit posCanvasMenuX=70 if isFile then isFile=not isFile end end end
Merci beaucoup à toi, @ngadidier !
J'en étais arrivé aux mêmes conclusions, avec le canvas et le découpage de mon écran. J'utilise d'ailleurs majoritairement des canvas, car j'ai besoin de réaliser des affichages indépendants les uns des autres et qui ne doivent pas dépasser de leur cadre.
Et je te remercie pour ton exemple. La partie concernant les éléments du menu vont m'aider. Le reste correspond à ce que j'ai déjà réalisé, on est sur la même longueur d'onde 😀
bonjour a toi Rey,
Attention au canvas car d'apres la doc de love2d tu auras une chute en fps
bonne journee a toi et bon code
On parle d'un éditeur de carte, pas d'un jeu compliqué. C'est quasiment statique.
Et même si c'était pour un dungeon crawler (terme que certains médias fr actuels commencent à utiliser à tort - comme d'habitude - pour désigner les Hack'n Slash à la Diablo ou Gauntlet), ce serait des déplacement en case par case, donc rien de transcendant.
En tous cas, merci de l'avertissement. Ça me sera toujours utile pour des jeux plus gourmands.
-
lua + microsoft studio code + debugging
Il y a 6 mois
-
Ajuster le nombre de tile du background à l'écran
Il y a 2 ans
-
Position d'un rectangle dit "pad" (atelier casse-briques)
Il y a 2 ans
-
Creer , ecrire et lire un fichier pour la sauvegarde des scores[lua/love2d]
Il y a 2 ans
- 6 Forums
- 260 Sujets
- 902 Posts
- 1 En ligne
- 45.6 {numéro}K Membres