var PLAYER_VX=0.2; var PLAYER_VY=-1.0; var PLAYER_AY=0.1; var BALL_SPEED_MIN=0.1; var BALL_SPEED_MAX=0.25; var BALL_COUNT=5; var STATE_ALIVE=0; var STATE_DEAD=1; var game; var player; var ball; var playerRunAnim_left; var playerRunAnim_right; var ballAnim; var vanishAnim; var playerHit; var ballHit; function Player(){ var obj=this; obj.sprite=game.createSprite(); obj.sprite.initAnim(playerRunAnim_right); obj.sprite.initHit(playerHit); obj.sprite.setXY(0,YMAX); obj.vy=0; obj.jump=false; obj.state=STATE_ALIVE; obj.sprite.onUpdate=function(){ switch (obj.state) { case STATE_ALIVE: obj.alive(); break; case STATE_DEAD: obj.dead(); break; } } obj.alive=function(){ var x=obj.sprite.getX(); var y=obj.sprite.getY(); var vy=obj.vy; if (game.isKey(KEY_LEFT)) { x-=PLAYER_VX; } if (game.isKey(KEY_RIGHT)) { x+=PLAYER_VX; } if (x<0) x=0; if (x>XMAX) x=XMAX; if (!obj.jump) { if (game.isKey(KEY_SPACE) || game.isKey(KEY_UP)) { vy=PLAYER_VY; obj.jump=true; } if (x!=obj.sprite.getX()) { obj.sprite.stepAnim(); if (game.isKey(KEY_LEFT) && obj.sprite.getAnim()!=playerRunAnim_left) { obj.sprite.initAnim(playerRunAnim_left); } else if (game.isKey(KEY_RIGHT) && obj.sprite.getAnim()!=playerRunAnim_right) { obj.sprite.initAnim(playerRunAnim_right); } } else { obj.sprite.animIndex=0; } } else { y+=vy; vy+=PLAYER_AY; obj.sprite.animIndex=2; if (y>=YMAX) { y=YMAX; obj.jump=false; } } obj.sprite.setXY(x,y); obj.vy=vy; if (game.testHitSprite(obj.sprite)) { obj.sprite.initAnim(vanishAnim); obj.state=STATE_DEAD; } game.addScore(Math.floor(x/XMAX*99+1)); } obj.dead=function(){ obj.sprite.stepAnim(); if (obj.sprite.isAnimOver()) { init(); } } } function Ball(){ var obj=this; obj.sprite=game.createSprite(); obj.sprite.initAnim(ballAnim); obj.sprite.initHit(ballHit); obj.sprite.setXY(randFroat2(XMAX+1,XMAX*2),YMAX); obj.vx=-randFroat2(BALL_SPEED_MIN,BALL_SPEED_MAX); obj.sprite.onUpdate=function(){ var x=obj.sprite.getX(); var y=obj.sprite.getY(); var vx=obj.vx; x+=obj.vx; if (x<=-1) { x=XMAX+1; vx=-randFroat2(BALL_SPEED_MIN,BALL_SPEED_MAX); } obj.sprite.setXY(x,y); obj.vx=vx; obj.sprite.stepAnim(); } } function init(){ var i; game.clear(); game.setScore(0); player=new Player(); ball=new Array(); for (i=0;i<BALL_COUNT;i++) { ball[i]=new Ball(); } } function main(){ game=new Game(); playerRunAnim_right=new Array( "image/ssk00.png","image/ssk00.png", "image/ssk01.png","image/ssk01.png", "image/ssk02.png","image/ssk02.png", "image/ssk01.png","image/ssk01.png", "image/ssk00.png","image/ssk00.png", "image/ssk03.png","image/ssk03.png", "image/ssk04.png","image/ssk04.png", "image/ssk03.png","image/ssk03.png" ); playerRunAnim_left=new Array( "image/ssk10.png","image/ssk10.png", "image/ssk11.png","image/ssk11.png", "image/ssk12.png","image/ssk12.png", "image/ssk11.png","image/ssk11.png", "image/ssk10.png","image/ssk10.png", "image/ssk13.png","image/ssk13.png", "image/ssk14.png","image/ssk14.png", "image/ssk13.png","image/ssk13.png" ); ballAnim=new Array( "image/ball0.png","image/ball1.png","image/ball2.png", "image/ball3.png","image/ball4.png","image/ball5.png" ); vanishAnim=new Array( "image/void.png","image/vanish8.png","image/vanish6.png", "image/vanish4.png","image/vanish2.png","image/vanish0.png", "image/vanish1.png","image/vanish2.png","image/vanish3.png", "image/vanish4.png","image/vanish5.png","image/vanish6.png", "image/vanish7.png","image/vanish8.png","image/void.png" ); playerHit=new Array(0.25,0.25,0.75,0.75); ballHit=new Array(0.25,0.25,0.75,0.75); init(); } |