QuickBox2D поли поведение против коробки или круга - PullRequest
0 голосов
/ 23 декабря 2010

Привет, я немного поиграл с Box2D и только начал использовать QuickBox2D, который облегчает работу. Я, однако, получаю другое поведение с определенной формой поли, чем с коробкой. Все остальные свойства одинаковы. Я включил 3 простых примера и их источник ниже.

Что я действительно хочу поработать, так это пример 1 с обоими объектами как поли. Как вы можете видеть, похоже, что «весло» - это тот, который терпит неудачу - «шар» (будь то поли или круг) просто падает прямо через него, а не отскакивает, как это происходит с объектом «весло» из блока , Был бы признателен за помощь или понимание.

Поскольку я могу опубликовать только одну строку на этом этапе, предварительный просмотр SWF для 3 примеров можно посмотреть здесь

Пример 1 источник:

package {
import com.actionsnippet.qbox.QuickBox2D;
import com.actionsnippet.qbox.QuickObject;

import flash.display.MovieClip;

public class Eg1 extends MovieClip {

    private var sim:QuickBox2D;
    private var paddle:QuickObject;
    private var ball:QuickObject;

    public function Eg1() {
        this.sim = new QuickBox2D(this);
        this.paddle = this.sim.addPoly({
            x:13, 
            y:19, 
            angle:0, 
            density:0, 
            draggable:false, 
            isBullet:true, 
            verts:[[-3.84,-0.67,-2.84,-1,-2.17,-0.33,2.17,-0.33,2.84,-1,3.84,-0.67,2.84,1,-2.51,1]]
        });
        this.ball = this.sim.addPoly({
            x:13, 
            y:1, 
            restitution:1, 
            friction:1, 
            draggable:false, 
            isBullet:true, 
            verts:[[-0.34,-1,0.34,-1,0.67,-0.33,0.67,0.33,0.34,1,-0.34,1,-0.67,0.33,-0.67,-0.33]]
        });
        this.sim.start();
    }

}}

Пример 2 источник:

package {
import com.actionsnippet.qbox.QuickBox2D;
import com.actionsnippet.qbox.QuickObject;

import flash.display.MovieClip;

public class Eg2 extends MovieClip {

    private var sim:QuickBox2D;
    private var paddle:QuickObject;
    private var ball:QuickObject;

    public function Eg2() {
        this.sim = new QuickBox2D(this);
        this.paddle = this.sim.addBox({
            x:13, 
            y:19, 
            angle:0, 
            density:0, 
            draggable:false, 
            isBullet:true, 
            width:8
        });
        this.ball = this.sim.addPoly({
            x:13, 
            y:1, 
            restitution:1, 
            friction:1, 
            draggable:false, 
            isBullet:true, 
            verts:[[-0.34,-1,0.34,-1,0.67,-0.33,0.67,0.33,0.34,1,-0.34,1,-0.67,0.33,-0.67,-0.33]]
        });
        this.sim.start();
    }

}}

Пример 3 источник:

package {
import com.actionsnippet.qbox.QuickBox2D;
import com.actionsnippet.qbox.QuickObject;

import flash.display.MovieClip;

public class Eg3 extends MovieClip {

    private var sim:QuickBox2D;
    private var paddle:QuickObject;
    private var ball:QuickObject;

    public function Eg3() {
        this.sim = new QuickBox2D(this);
        this.paddle = this.sim.addPoly({
            x:13, 
            y:19, 
            angle:0, 
            density:0, 
            draggable:false, 
            isBullet:true, 
            verts:[[-3.84,-0.67,-2.84,-1,-2.17,-0.33,2.17,-0.33,2.84,-1,3.84,-0.67,2.84,1,-2.51,1]]
        });
        this.ball = this.sim.addCircle({
            x:13, 
            y:1, 
            restitution:1, 
            friction:1, 
            draggable:false, 
            isBullet:true, 
            radius:1
        });
        this.sim.start();
    }

}}

1 Ответ

0 голосов
/ 23 декабря 2010

Да. Я создал ту же «форму» с группой выпуклых объектов, и она отлично работает.

...