Aller au contenu

Question lua


benja32

Messages recommandés

salut, je me lance dans la programmation en lua mais j'ai quelque question, voici la source de mon jeux de voiture

 

-- couleur
vert = Color.new(0, 255, 0)

-- texte
titre = "le jeu de bagnole qui dechire!"
sccnt=0

--image

voitureup = Image.load("voitureup.png&quot[img=https://preprod.metagames.fr/forums/images/smilies/clin.gif]
voituredown = Image.load("voituredown.png&quot[img=https://preprod.metagames.fr/forums/images/smilies/clin.gif]
voitureleft = Image.load("voitureleft.png&quot[img=https://preprod.metagames.fr/forums/images/smilies/clin.gif]
voitureright = Image.load("voitureright.png&quot[img=https://preprod.metagames.fr/forums/images/smilies/clin.gif]
route = Image.load("route.png&quot[img=https://preprod.metagames.fr/forums/images/smilies/clin.gif]
-- position de depart
positionY = 150
positionX = 100

--boucle principal 

while true do

if positionX > 10 and positionX < 470 and positionY > 10 and positionY < 260 then
  screen:blit(positionX, positionY, voitureright)
end

screen:clear()
screen:print(10,10, titre, vert)
screen:blit(0, 0, route, false)

pad = Controls.read()

if pad:up() then
positionY=positionY-5
screen:blit(positionX, positionY, voitureup)
  end


if pad:down() then
positionY=positionY+5
screen:blit(positionX, positionY, voituredown)
end

if pad:left()then
positionX=positionX-5 
screen:blit(positionX, positionY, voitureleft)
end

if pad:right() then
   positionX=positionX+5
  screen:blit(positionX, positionY, voitureright)
end

if pad:select() then
 screen:save("screenshot/screen"..sccnt..".png&quot[img=https://preprod.metagames.fr/forums/images/smilies/clin.gif]
  sccnt=sccnt+1
end
 

screen.waitVblankStart()
  screen.flip()
end

 

j'aimerai faire avance la voiture vers la droite esque quelqu'un saurai m'aider ?

j'aimerai aussi que la voiture ne sorte plus en haut en bas et a gauche de l'ecran.

 

merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

Humm je ne connais pas trop ce langage, tout ce que je peut te dire c'est une des procédure possible dans d'autres langages, par ex pour faire avancer le serpent dans un snake.

 

En gros, tu fais une boucle qui va détecter à chaque tour si une touche est pressée ou non. Chaque touche correspond à un code que l'on obtient avec la fonction getkey, (enfin en tout cas en basic c'est dans ce genre là) que tu assignes à une variable et sur laquelle tu fais un test booleen:

 

key = getkey();

 

if key = ... then ....

if key = ... then ....

 

suivant la valeur de key et donc la touche pressée, la voiture ira dans telle ou telle direction et tel ou tel image de la voiture apparaîtra.

 

Mais bon, cela te permettra juste de faire avancer la voiture dans un des sens cardinal. Pas de diagonales... après, tout dépend de la façon dont tu veut que ta voiture se déplace. C'est surement plus dur de pouvoir la faire tourner degré par degré par exemple.

 

Bref, suffit de réfléchir et tu pourra trouver la solution, moi je ne la connais pas

 

mais bon courage !!

Lien vers le commentaire
Partager sur d’autres sites

Désolé pour le doublon impossible d'éditer et j'avais pas lu la deucxième question

 

pour l'empêcher de sortir tu rajoute une clause dans chaque tour de boucle qui dit que si la position de la voiture est sur l'un des bords de l'écran, alors rien ne se passe.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
  • Statistiques des membres

    23 028
    Total des membres
    1 033
    Maximum en ligne
    Subaru
    Membre le plus récent
    Subaru
    Inscription
  • Statistiques des forums

    128,1 k
    Total des sujets
    1,7 M
    Total des messages
×
×
  • Créer...