Ho bisogno di aiuto o almeno un puntatore con collisione in un gioco im rendendo per divertimento

voti
1

Così ho fatto un gioco, ha fatto una mappa, e tutto sta funzionando benissimo. Il problema è che ho fatto un sistema di collisione molto stupido che ha funzionato prima, ma io sono in esecuzione in problemi.

Sto usando le posizioni X e Y del giocatore per disegnare il carattere, e l'utilizzo di giocatori Tilex e Tiley (x / 32 e y / 32) per rilevare collisione. Ecco un quadro che spiega il mio problema: il

La scatola rossa è giocatori Tilex e Tiley cordinate. Giocatore muove ancora beyound il muro dove la collisione dovrebbe accadere.

Il doesnt Tilex lascia incrementi / decrementi accadere se si scontrano con una piastrella solida, MA giocatore X e Y (sprite) ancora si muove oltre quella scatola per 31 più pixel. Non ho idea di come risolvere questo problema. La mia immagine giocatore non è centrata, la sua disegnato su nell'angolo in alto a destra.

Questo è il im codice corrente utilizzando:

    for i=1, #lsx_map1 do 
        if math.floor(player.fx/32) == lsx_map1[i] and math.floor(player.fy/32) == lsy_map1[i] then
            player.speedx = 0
            player.speedy = 0   
            print(COLISSION DETECTED ON ..player.x.. ..player.y)
        else
            print(colVar)
            colVar = colVar+1
        end
    end
    if colVar == #lsx_map1 then     
        player.x = player.fx
        player.y = player.fy
    end

lsx_map1 è il numero di tessere solidi, e colVar deve essere uguale a quel numero, se non accade collisione. In caso di collisione accade, tale aumento numero pretende da uno, e quindi non succede nulla. Chiedere di più dettagli è necessario se si vuole aiutare me, ma avete bisogno di più informazioni.

Qualsiasi aiuto o suggerimenti sarebbe apprezzato. Grazie.

È pubblicato 02/12/2019 alle 23:54
fonte dall'utente
In altre lingue...                            


1 risposte

Ho bisogno di aiuto o almeno un puntatore con collisione in un gioco im rendendo per divertimento

voti
1

Così ho fatto un gioco, ha fatto una mappa, e tutto sta funzionando benissimo. Il problema è che ho fatto un sistema di collisione molto stupido che ha funzionato prima, ma io sono in esecuzione in problemi.

Sto usando le posizioni X e Y del giocatore per disegnare il carattere, e l'utilizzo di giocatori Tilex e Tiley (x / 32 e y / 32) per rilevare collisione. Ecco un quadro che spiega il mio problema: il problema

La scatola rossa è giocatori Tilex e Tiley cordinate. Giocatore muove ancora beyound il muro dove la collisione dovrebbe accadere.

Il doesnt Tilex lascia incrementi / decrementi accadere se si scontrano con una piastrella solida, MA giocatore X e Y (sprite) ancora si muove oltre quella scatola per 31 più pixel. Non ho idea di come risolvere questo problema. La mia immagine giocatore non è centrata, la sua disegnato su nell'angolo in alto a destra.

Questo è il im codice corrente utilizzando:

    for i=1, #lsx_map1 do 
        if math.floor(player.fx/32) == lsx_map1[i] and math.floor(player.fy/32) == lsy_map1[i] then
            player.speedx = 0
            player.speedy = 0   
            print("COLISSION DETECTED ON "..player.x.." "..player.y)
        else
            print(colVar)
            colVar = colVar+1
        end
    end
    if colVar == #lsx_map1 then     
        player.x = player.fx
        player.y = player.fy
    end

lsx_map1 è il numero di tessere solidi, e colVar deve essere uguale a quel numero, se non accade collisione. In caso di collisione accade, tale aumento numero pretende da uno, e quindi non succede nulla. Chiedere di più dettagli è necessario se si vuole aiutare me, ma avete bisogno di più informazioni.

Qualsiasi aiuto o suggerimenti sarebbe apprezzato. Grazie.

Risposto il 02/12/2019 a 23:54
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more