Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Nouveau Candidat au Club
    Je fais un jeu de tir mais je suis bloqué sur le système de points
    Bonjour,

    je fais un jeu de tire en lua sous le moteur love2d et je suis coincé sur la fonction de points
    Ce que je voudrai faire c'est détecter si le viseur est sur la cible pour ajouter (ou non) les points
    si ça peux aider voici à quoi ressemble le jeu:

    et voici le code:


    Merci d’avance d'avoir bien voulu m'aider :-)

  2. #2
    Membre à l'essai
    collision avec distance
    Bonjour,


    Moi pour ce genre de cas je calcule en permanence la distance qu'il y a entre mes deux points, ou sprites.
    Quand la distance entre ta croix et ta cible est de 0, c'est que tu es dessus.

    voici la formule :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    function math.dist(x1,y1, x2,y2) return ((x2-x1)^2+(y2-y1)^2)^0.5 end



    Dans ton update tu fais en permanence :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    distance = math.dist( xCroix, Ycroix,  xCible, yCible)
     
    if distance <= 0 then ... etc etc.



    la page des formule love2d :
    https://love2d.org/wiki/General_math]


    Bon code

  3. #3
    Membre à l'essai
    Je vois aussi dans ton code que tu cherche des random.


    Pour avoir un random vraiment plus aléatoire en lua rajoute cette ligne de code au début : math.randomseed(os.time())


    tu pourrais peu être faire :

    deux variables pour la largeur et H de l'ecran:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    local largeur = love.graphics.getWidth()
    local hauteur = love.graphics.getHeight()



    ensuite dans ton load :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    Cible.x = love.math.random ( 0, largeur )
    Cible.y = love.math.random ( 0, hauteur)


    si c'est trop sur le bord tu peux même faire :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    local cible.largeur = cible.img:getWidth()
    local cible.hauteur = cible.img:getHeight()
    Cible.x = love.math.random ( 0 + cible.largeur, largeur - cible.largeur )
    Cible.y = love.math.random ( 0 + cible.hauteur, hauteur - cible.hauteur)



    qu'en penses tu ?

  4. #4
    Nouveau Candidat au Club
    Merci de ta réponse
    Merci de ta réponse marven, j'en prendrai compte et je renverrai une réponse si il y a un autre problème ^^

###raw>template_hook.ano_emploi###