我是使用javascript进行游戏开发的新手,我跟随一个教程,其中使用了easeljs和box2d创建一个弹跳球。 我编写了与视频教程中显示的相同的代码,但是球没有动画
(function(window){
function Ball(){
this.view = new createjs.Bitmap("soccer.png")
this.view.regX = this.view.regY = 50;
var fixDef = new box2d.b2FixtureDef();
fixDef.density = 1;
fixDef.friction = 0.5;
fixDef.restitution = 0.8;
var bodyDef = new box2d.b2BodyDef();
bodyDef.type = box2d.b2Body.b2_dynamicBody;
bodyDef.position.x = Math.random()*800 / SCALE;
bodyDef.position.y = 0;
fixDef.shape = new box2d.b2CircleShape(50 / SCALE);
this.view.body = world.CreateBody(bodyDef);
this.view.body.CreateFixture(fixDef);
//this.view.addEventListener("tick", tick);
this.view.onTick = tick;
}
function tick(event){
this.x = this.body.GetPosition().x * SCALE;
this.y = this.body.GetPosition().y * SCALE;
this.rotation = this.body.GetAngle() * (180/Math.PI);
}
window.Ball = Ball;
})(window);
它表示this.view.onTick = tick;
无效,因此我将其更改为this.view.addEventListener("tick", tick);
现在这给出了错误this.body
未定义
答案 0 :(得分:1)
问题解决了我使用了this.view.on("tick", tick, this.view);