Etape #3 : Le tir des munitions.
Thibault Baron Il y a 7 mois Premium Pro - Adhésion à vie0

Yo les zarticho !

Avant la Gamejam, je m’étais attaqué au tir du personnage. Mais j’ai du faire une petite pause afin de me consacrer à mon projet « World Editor ». C’est donc aujourd’hui que j’ai repris Y-5472, en gérant les collisions des balles avec le décor.

Le principe est très simple : j’ai une table nommée player.bullets, que j’alimente à chaque fois que le joueur tire. Puis pour ce qui est des collisions, au lieu de s’embêter avec des collisions rectangulaires (puisque la balle peut avoir une rotation), j’ai décidé de simplement utiliser les informations de la tilemap. J’ai ainsi facilement accès à la position des caisses sur la map. Ensuite le calcul est très simple :

 

local bullet_id = #player.bullets
    while bullet_id > 0 do
    local bullet = player.bullets[bullet_id]

    if bullet.x < 0 or bullet.x > WIDTH or bullet.y < 0 or bullet.y > HEIGHT then
        table.remove(player.bullets, bullet_id)
    end

    local l = math.floor(bullet.y / map.WIDTH_TILE) + 1
    local c = math.floor(bullet.x / map.HEIGHT_TILE) + 1

    if c > 0 and c < 16 and l > 0 and l < 11 then
        if current_map[l][c] == 245 then
            table.remove(player.bullets, bullet_id)
        end
    end

    bullet_id = bullet_id – 1
end

 

Donc voilà comment j’ai géré les munitions.

Sur ce je vais vous laisser.

En vous souhaitant un bon code,

A bientôt,

Thibault BARON, YogS-974

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.