我目前正在尝试用狡猾的js制作一款游戏而且我坚持使用精灵动画。 我真的不知道我做错了什么..
这是工作代码: http://aaahdontpaintmeinred.me.pn/
以下是我在加载场景中加载精灵的方法:
Crafty.scene('Loading', function(){
// Draw some text for the player to see in case the file
// takes a noticeable amount of time to load
Crafty.e('2D, DOM, Text')
.text('Loading...')
.attr({ x: 0, y: Game.height()/2 - 24, w: Game.width() });
// Load our sprite map image
Crafty.load(['assets/mansprite.gif'], function(){
// Once the image is loaded...
// Define the individual sprites in the image
// Each one (spr_tree, etc.) becomes a component
// These components' names are prefixed with "spr_"
// to remind us that they simply cause the entity
// to be drawn with a certain sprite
Crafty.sprite(133, 'assets/mansprite.gif', {
mansprite:[0, 0]
});
// Now that our sprites are ready to draw, start the game
Crafty.scene('LevelEditor');
})
})
以下是我尝试在播放器组件中绑定和动画的方法:
Crafty.c('PlayerCharacter', {
init: function() {
this.requires('Actor, Collision,FPS,mansprite,SpriteAnimation,WiredHitBox')
.attr({maxValues:1,boost:false,trailSpacing:100,currentFrame:0})
.collision();
this.animate('run',0, 0, 3);
this.animate('idle',3, 0, 1);
this.requires('FluidControls')
//this.rotation+=90;
.onHit("FinishLine",this.endLevel)
.onHit("DeathWall",this.omagaDie)
.onHit("Booster",this.booster)
.bind("EnterFrame",function(fps){
if(this.move.up)
{
this.animate('run', 4,-1);
var spacing = this.trailSpacing;
if( this.currentFrame%((60*spacing)/1000) == 0)
Crafty.e("montexte").spawn(this.x,this.y,this.boost,this.xspeed,this.yspeed,this.rotation%360,this.h,this.w);
}else
{
if(!this.move.down)
{
this.animate('idle', 4,1);
}
}
this.currentFrame++;
if(this.currentFrame >=60)
this.currentFrame=0
})
;
},
希望有人可以指出出了什么问题! 如果您需要更多细节或有疑问,请不要犹豫! 感谢
答案 0 :(得分:0)
好的,所以我使用0.5.3版本解决了这个问题。
仍然不知道发生了什么。但是会尝试在这里给出答案。
答案 1 :(得分:0)
使用非缩小版。
我正在使用Crafty v0.5.4缩小并且精灵动画无效,控制台日志中没有错误。
经过几个小时的挣扎,我尝试使用非缩小版本,精灵动画开始正常工作。