cb-hackers / cbEnchanted

A new runtime for CoolBasic
13 stars 3 forks source link

Törmäykset bugaa, jos objekti on >2x tilen koko #103

Closed aXu-AP closed 12 years ago

aXu-AP commented 12 years ago

Tällainen jännä bugi, törmännyt objekti loikkaa taaksepäin törmätessä. Tämä tulee vain, jos objektin törmäysalue on suurempi kuin kaksi tileä. Laatikkotörmäyksellä tuntuu tulevan enemmän. Tässä esimerkissä sitä ei vielä 65:n kohdalla huomaa, mutta mitä suurempi törmäysalue, sen suurempi "pomppiminen".

FrameLimit 60
Map = LoadMap("Media/Testmap.til", "Media/Tileset.bmp")
Obj = LoadObject("Media/Car.bmp")
PositionObject Obj, 0, 50
CameraFollow Obj, 1, 10
ObjectRange Obj, 85, 45 //64:n toimii täysin normaalisti, sitä suuremmilla luvuilla aina suurempi ongelma
SetupCollision Obj, Map, 1, 4, 2

Repeat
    TranslateObject Obj, (RightKey() - LeftKey()) * 4, (UpKey() - DownKey()) * 4
    DrawScreen
Forever

Tämä oli aika tuhoisa isku tasohyppelylle, kun jostain syystä se saa ukon valumaan sivulle ja tietty estää hyppimisen :D

valscion commented 12 years ago

Tämä on oikeastaan jo pitkään ollut tiedossa ja on helposti korjattavissa mutta jostain syystä en vain ole vaivautunut. Pitäisi vaan keksiä joku hyvä tapa laskea se kuinka monta tileä pitää sivuillepäin tarkistaa. Tällä hetkellä se on niin että tarkistetaan suoraan edestä ja yksi tile molempiin laitoihin päin. Keksitkö jotain sopivaa? Pitäisi ottaa huomioon tilen koko sekä objektin törmäysalue.

aXu-AP commented 12 years ago

Jos oikein ymmärsin tuon selityksesi, niin eikös se ole ObjectWidth / TileWidth tileä? Muistelisin, että cb jakaa kartan lataamisen yhteydessä (vaakasuunnassa) mahdollisimman suuriin yhtenäisiin neliskanttisiin törmäysalueisiin. Vähentää laskettavaa ja jossain määrin myös tätä ongelmaa.

valscion commented 12 years ago

Voisi ollakin. Laitan sen fiksin vielä pakettiin ja koitan saada kohta uuden version ulos

EDIT: En kerkeä julkaista vielä tänään uutta versiota :( huomenna tulloo sitten.

valscion commented 12 years ago

Tämä on nyt korjattu mutta huomasin törmäysten bugailevan siltikin. Johtunee tästä uudesta tavasta hoitaa maailmankoordinaattimuunnokset ja se että kartta piirretään maailmankoordinaatteihin...