jumpScore.js



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();
    }