Ik heb hulp nodig of tenminste een pointer met collision in een spel im maken voor de lol

stemmen
1

Dus maakte ik een spel, maakte een kaart, en alles werkt prima. Het probleem is dat ik maakte een zeer domme botsing systeem dat werkte voor het eerst, maar ik ben actief in de problemen.

Ik ben met behulp van speler X en Y-posities om karakter te trekken, en het gebruik van spelers Tilex en tiley (x / 32 en J / 32) om een ​​aanvaring te detecteren. Heres een beeld dat mijn probleem legt uit: het

De Rode doos is spelers Tilex en tiley cordinate. Speler beweegt nog steeds beyound de muur waar de botsing zou moeten gebeuren.

De Tilex doesnt laten stijgingen / dalingen gebeuren als ze in botsing komen met een solide tegel, MAAR speler X en Y (sprite) nog gaat verder dan dat vak voor 31 meer pixels. Ik heb geen idee hoe dit op te lossen. afbeelding van mijn speler is niet gecentreerd, zijn getekend op de rechterbovenhoek.

Dit is de huidige code im met behulp van:

    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 is het aantal vaste tegels, en colVar moet gelijk zijn aan dat nummer als aanrijding gebeurt niet. In het geval dat gebeurt botsing, dat aantal doesnt te verhogen met één, en dan gebeurt er niets. Vraag voor meer informatie je nodig hebt als je me wilt helpen, maar je meer informatie nodig.

Alle hulp of tips zou worden gewaardeerd. Dank je.

De vraag is gesteld op 02/12/2019 om 23:54
bron van user
In andere talen...                            


1 antwoorden

Ik heb hulp nodig of tenminste een pointer met collision in een spel im maken voor de lol

stemmen
1

Dus maakte ik een spel, maakte een kaart, en alles werkt prima. Het probleem is dat ik maakte een zeer domme botsing systeem dat werkte voor het eerst, maar ik ben actief in de problemen.

Ik ben met behulp van speler X en Y-posities om karakter te trekken, en het gebruik van spelers Tilex en tiley (x / 32 en J / 32) om een ​​aanvaring te detecteren. Heres een beeld dat mijn probleem legt uit: het probleem

De Rode doos is spelers Tilex en tiley cordinate. Speler beweegt nog steeds beyound de muur waar de botsing zou moeten gebeuren.

De Tilex doesnt laten stijgingen / dalingen gebeuren als ze in botsing komen met een solide tegel, MAAR speler X en Y (sprite) nog gaat verder dan dat vak voor 31 meer pixels. Ik heb geen idee hoe dit op te lossen. afbeelding van mijn speler is niet gecentreerd, zijn getekend op de rechterbovenhoek.

Dit is de huidige code im met behulp van:

    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 is het aantal vaste tegels, en colVar moet gelijk zijn aan dat nummer als aanrijding gebeurt niet. In het geval dat gebeurt botsing, dat aantal doesnt te verhogen met één, en dan gebeurt er niets. Vraag voor meer informatie je nodig hebt als je me wilt helpen, maar je meer informatie nodig.

Alle hulp of tips zou worden gewaardeerd. Dank je.

antwoordde op 02/12/2019 om 23:54
bron van user

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