Toon posts:

[AS/Flash] Collision kant uitrekenen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ok mijn opstelling is een movie van 800x600 met daarin het bekende spelletje met een balletje(5px) batje en de blokjes.

Nu zit ik met het volgende, ik probeer uit te vogelen hoe ik kan zien of ik zon blokje nou met het balletje aan de zeikant raak of aan de onderkant.
Want als hij aan de zeikant raakt moet hij spiegelen over de _y en en aan de boven/onderkant over de _x.
Anders gaat hij namelijk altijd opzei als je er tegen aan komt, maar hij moet gewoon onder de hoek van inval weer verder gaan.

Ik had dit geprobeerd (op een blokje):
code:
1
2
3
4
5
6
7
8
9
10
11
onClipEvent (enterFrame) {
    if ((hitTest(_root.mball)) && (this._currentframe == 1)) {
        if (_root.mball._x == this._x || _root.mball._x == this._x+this._width) {
            _root.mball.speedx *= -1;
        } else if (_root.mball._y == this._y || _root.mball._y == this._y+this._height) {
            _root.mball.speedy *= -1;
        }
        this.play();
        _root.score += 10;
    }
}
Maar dat wil dus niet door de reden dat speedx/y niet altijd precies 1unit is maar increased met 1.0001 zodat het balletje steeds sneller gaat.

Iemand een suggestie hierover b.v.d.

  • André
  • Registratie: Maart 2002
  • Laatst online: 11:13

André

Analytics dude

Je vierkantje heeft 4 kanten, bekijk gewoon met welke kant je balletje collide en verander aan de hand daarvan de richting.

En dat de speed niet precies 1 unit is hoeft geen probleem te zijn, kijk iets verder vooruit dan alleen de huidige positie. Dus kijk waar de bal een stap later zal komen en kijk of er dan collision volgt.

  • LB Back
  • Registratie: November 2004
  • Laatst online: 14-03 23:22
Ik heb wel eens zoiets gemaakt met 3 mc's per batje die ik dan bat_bovenkant, bat_onderkant en bat_zijkant noemde.