Ik ben bezig met het programmeren van een simpele Flash-game.
Met behulp van de Collision Detection Kit class kan ik pixelbased collision detecteren. So far so good. Ter inleiding;
Game info
- Je bent een vis
- Je kunt alleen naar links, recht en boven bewegen
- Je zakt automatisch naar beneden (yFriction)
- Je remt x-waards af als je niet beweegt met het keyboard (xFriction)
- Vis wordt bewogen met behulp van zijn xSpeed en ySpeed (positieve of negatieve waarden)
Een afbeelding (een mens moet wat in de nachtelijke uren) om het e.e.a. te verduidelijken, met daaronder de probleemstelling;

De collision detection gaat goed. Op het moment dat vis (rood vierkant: in werkelijkheid een GIF-afbeelding waarbij pixel based collision gedetecteerd wordt) een muur raakt, moet ik de collision afhandelen. Met andere woorden, wat te doen als vis een muur raakt?
De enige informatie die ik heb zijn:
- de properties van vis (x, y, width, height) en vis als object
- de muur als object
- de x en y waarden van de pixels waar collision plaatsvindt
- de angle van de collision
De angles van de collisions zijn corresponderend met de scenes in de afbeelding:
45, 90, 135,
0, 180,
-45, -90, -135
Mijn probleem is dat ik niet weet hoe de muur "eruit ziet" waarmee collision plaatsvindt. Ik weet slechts de hoek(angle) waarmee vis de muur geraakt heeft. Ik kan dus, afhankelijk van de hoek, bepaalde properties van vis wijzigen. Toch dient vis, afhankelijk van de hoek van de muur (niet van de collision!), op een bepaalde manier te reageren. Zo zal hij, als hij in scene 2 de muur raakt (met een collision angle van laat zeggen 45 graden), simpelweg al zijn ySpeed verliezen en zich naar rechts blijven bewegen (positieve xSpeed-waarde).
Echter, als hij in scene 1 de muur raakt (met dezelfde collision angle van 45 graden), dan zal hij niet zijn ySpeed verliezen maar, afhankelijk van zijn xSpeed, omhoog bewegen (negatieve ySpeed).
Het probleem is dus dat ik niet weet hoe de muur "eruit ziet" en wat ik dien te doen.
Heeft iemand hier een nuttige opmerking over?
Met andere woorden, hoe dien ik de collision af te handelen met de waarden die ik heb in deze omstandigheid?
Met behulp van de Collision Detection Kit class kan ik pixelbased collision detecteren. So far so good. Ter inleiding;
Game info
- Je bent een vis
- Je kunt alleen naar links, recht en boven bewegen
- Je zakt automatisch naar beneden (yFriction)
- Je remt x-waards af als je niet beweegt met het keyboard (xFriction)
- Vis wordt bewogen met behulp van zijn xSpeed en ySpeed (positieve of negatieve waarden)
Een afbeelding (een mens moet wat in de nachtelijke uren) om het e.e.a. te verduidelijken, met daaronder de probleemstelling;

De collision detection gaat goed. Op het moment dat vis (rood vierkant: in werkelijkheid een GIF-afbeelding waarbij pixel based collision gedetecteerd wordt) een muur raakt, moet ik de collision afhandelen. Met andere woorden, wat te doen als vis een muur raakt?
De enige informatie die ik heb zijn:
- de properties van vis (x, y, width, height) en vis als object
- de muur als object
- de x en y waarden van de pixels waar collision plaatsvindt
- de angle van de collision
De angles van de collisions zijn corresponderend met de scenes in de afbeelding:
45, 90, 135,
0, 180,
-45, -90, -135
Mijn probleem is dat ik niet weet hoe de muur "eruit ziet" waarmee collision plaatsvindt. Ik weet slechts de hoek(angle) waarmee vis de muur geraakt heeft. Ik kan dus, afhankelijk van de hoek, bepaalde properties van vis wijzigen. Toch dient vis, afhankelijk van de hoek van de muur (niet van de collision!), op een bepaalde manier te reageren. Zo zal hij, als hij in scene 2 de muur raakt (met een collision angle van laat zeggen 45 graden), simpelweg al zijn ySpeed verliezen en zich naar rechts blijven bewegen (positieve xSpeed-waarde).
Echter, als hij in scene 1 de muur raakt (met dezelfde collision angle van 45 graden), dan zal hij niet zijn ySpeed verliezen maar, afhankelijk van zijn xSpeed, omhoog bewegen (negatieve ySpeed).
Het probleem is dus dat ik niet weet hoe de muur "eruit ziet" en wat ik dien te doen.
Heeft iemand hier een nuttige opmerking over?
Met andere woorden, hoe dien ik de collision af te handelen met de waarden die ik heb in deze omstandigheid?