[Flash MX] Game => HitTest probleem.

Pagina: 1
Acties:

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Hoi,

Ik ben met een racespelletje bezig in Flash.
Alleen, nu wil ik mbv HitTest muren kunnen maken, waar hij tegenaan kan rijden.
Dit gaat allemaal prima.
Maar ik heb een probleem die ik niet echt kan oplossen.
Het autotje is een rechthoekig movieclipje.

Dit heb ik om te kijken of ie tegen de kant komt:
JavaScript:
1
2
3
4
5
6
7
8
function raakKant()
{
    tmp =        _root.bg.omheining.hitTest(_root.auto._x - (_root.auto._width / 2) + x, _root.auto._y - (_root.auto._height / 2) + y, true);
    tmp = tmp or _root.bg.omheining.hitTest(_root.auto._x + (_root.auto._width / 2) + x, _root.auto._y - (_root.auto._height / 2) + y, true);
  tmp = tmp or _root.bg.omheining.hitTest(_root.auto._x - (_root.auto._width / 2) + x, _root.auto._y + (_root.auto._height / 2) + y, true);
    tmp = tmp or _root.bg.omheining.hitTest(_root.auto._x + (_root.auto._width / 2) + x, _root.auto._y + (_root.auto._height / 2) + y, true);   
    return tmp;
}


Maar nu is het probleem, dat als de auto diagonaal rijdt (alles behalve 0, 90, 180 en 270 graden dus) dat de hitTest dan niet meer klopt.
De _root.auto._x is dan namelijk de _x van de bounding box (noem je die zo?).

Kijk maar ff hier: http://xlerator.beefhole.nl/webstuff/auto4.html
En rij schuin langs een van die zwarte muren. Dan zie je dat het daar niet klopt.
Ik weet ff niet meer hoe ik dat zou kunnen oplossen eigelijk.

Kan iemand me een tip geven?

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Guillome
  • Registratie: Januari 2001
  • Niet online
1 malig kikje, maar weet niemand dit?

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 17-06 09:56

XangadiX

trepanatie is zóó kinderachtig

ik zie het probleem niet zo, ...
ik heb het net wel voor mekaar gekregen om IN de muur vast te komen zitten :-/

Stoer; Marduq


  • Guillome
  • Registratie: Januari 2001
  • Niet online
Ja das nog een foutje, is er al bijna uit in de nieuwe (offline) versie.
Maar als je zo rijdt, dan raakt ie de kant ook al.
Afbeeldingslocatie: http://xlerator.beefhole.nl/webstuff/fautotje.jpg

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

kijk hier voor de berekening van de juiste inkomende en uitgaande hoek

Verwijderd

Dat komt door de boundingbox die hij gebruikt bij hittest, ik denk dat je zelf een collision detection moet schrijven. Ik heb laatst hier ook een topic over geopend en ik dacht dat ik in /14 deze week ook een topic zag over collision detection. Waarnaar je kan zoeken zijn impuls, moment van objecten etc. om straks de reactie op de botsing te berekenen.

[ Voor 19% gewijzigd door Verwijderd op 31-01-2003 09:52 ]

Pagina: 1