2016-06-02 26 views
0

Ich denke, das ist ziemlich seltsam, dass ich nichts gefunden habe ... was bedeutet, dass die Antwort wirklich einfach ist, aber ich bekomme es nicht oder es ist etwas anderes.haxe/OpenFL: Wie man einen Stein zerstört/entfernt

Ich benutze haxe und openFL und die Übung ist spezifisch über keine anderen Frameworks. Ich baue einen Atari-Breakout-Klon. Ich versuche das Kollisionsereignis zwischen dem Block und dem Ball zu bewältigen. Alle Blöcke werden in einem Array map[] gespeichert, das iteriert wird.

if ((ball.x > (map[i].x) && ball.x < (map[i].x+20)) && (ball.y > (map[i].y) && ball.y < (map[i].y+20))) { 
        this.removeChild(map[i]); 
        ballMovement.y *= -1; 
       } 

Der Ball hat 10px Radius und jeder Block ist 20x20. (Auch, ja, der Ball wird unbeholfen abprallen, aber ich hatte noch keine Zeit, eine anständige Bouncing-Funktion zu machen, also muss ich das jetzt tun)

Ich bekomme etwas unerwartetes Verhalten. Ja, die Blöcke verschwinden jetzt, aber manchmal scheint der Ball von unsichtbaren Blöcken abzuprallen. Die Frage ist, entferne ich diese Elemente richtig? Ist die Kollisionserkennung nicht richtig eingestellt?

Antwort

2

Wahrscheinlich sollten Sie Ihren Block (Karte [i]) aus Karte auch entfernen, weil scheint, dass Sie die Kollision mit Kartenelementen, nicht Anzeigeelemente überprüfen.

+0

natürlich, ich habe es nicht aus dem Array entfernt. Ich habe es am nächsten Morgen bemerkt. Eines der Probleme, spät dran zu bleiben Codierung: P vielen Dank. – Thaenor