Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

2018/11/24 17:18:00

MixJuice GET URL : kidspod.club/mj/671

ジャンプゲームichigolatte,pancake版ジゴク

SHIROさんが以前公開されていたジャンプゲームのアレンジで以前ichigojamで投稿したものをichigolatte,pancakeに移植しました。
pancakeで横スクロール機能はないので道とアイテムだけが画面右から左へ流れます。
右に向かって三輪車で走るあなたは地面の穴をジャンプで避けて進んでください。
スペースキーでジャンプ、左右矢印キーで左右移動。
ジゴクで穴に落ちるとゲームオーバー。
イチゴを取るとスピードアップ。スピードアップ中にさらにイチゴを取るとテンゴクに帰れます。
流れてくる金貨(黄色)を取ると+100点、イチゴ(赤)を取るとスピードアップします。
このプログラムはジゴクステージ用です。eepromのスロット57に保存して下さい。
テンゴクステージはスロット58,ボーナスステージはスロット59に保存して下さい。 スロットを変更するときはソースのlrun()のパラメーターを書き換えてください。
スピードアップ中は速度出すためichigolatteの画面は消しています。ichigolatteの最高速度を見てみてください。 またpancakeならではのグラフィックとサウンド表現で楽しい作品になってますのでぜひ遊んで見てください。

SOURCE CODE

//JPB
var gb=0x1,x=7,y=6,v=0,jf=0,k=0,db=0,sb=0,sz=0,s;
if(env()>0){
 s=env();
}else{
 s=0;
 lrun(58);
}
function er(ex,ey){
 uart(0x80,0x0e,0x03,ex,ey,12,255,255,255,255,255,255,255,255);
}
function ch(cx,cy,it){
 uart(0x80,0x06,0x14,cx,cy,it);
}
function dr(gb){
 var j=0,i,g0,g1,g2;
 while(j<32){
  g0=gb>>j&3;
  g1=gb>>(j+2)&3;
  g2=gb>>(j+1)&1;
  if(g0==g1){
   j=j+2;
  }
  uart(0x80,0x08,0x01,80-j/2*5,42-g2*20,75-j/2*5,42-g2*20,1-g0&1);
  j=j+2;
 }
}
function it(qb,it,iy){
 var j=0;
 while(j<16){
  if(qb>>j&1>0){
   uart(0x80,0x06,0x14,69-j*5,iy,it);
   if((j>0)*(qb>>(j-1)&1<1){
    uart(0x80,0x0e,0x03,77-j*5,iy,12,248,248,248,248,248,248,248,248);
   }
  }
  j=j+1;
 }
 er(0,iy);
}
function jp(){
 var ik,gp;
 ik=inkey();
 gp=gb>>(30-2*x)&3;
 if((ik==32)*(jf<1)){
  jf=1;v=-3;
 uart(0x80,0x0b,0x09,0,14,0,5,5,255,5,255);
 }
 er(x*5-1,y*4+10);
 er(x*5-1,y*4+7);
 x=x+(ik==29)*(x<15)-(ik==28)*(x>0);
 y=y+v;
 if(jf>0){
  v=v+1;
 }else{
  v=1;
 }
 ch(x*5-1,y*4+9+s%2,0x0e);
 ch(x*5-1,y*4+7+s%2,3);
 if((gp==0)*(y+v>6)){
  y=6;
  jf=0;
  v=0;
 }
 if((gp==2)*(y==1)){
  jf=0;
  v=0;
 }
 if((db>>(15-x)&1>0)*(y==-2)){
  db=db&~(1<<15-x);
  s=s+100;
  uart(0x80,0x0b,0x09,7,7,5,5,5,255,5,255);
 }
 if((sb>>(15-x)&1>0)*(y==-2)){
  sz=1;
  sb=sb&~(1<<15-x);
  k=k+1;
  if(k>1){
   env(s);
   video(1);
   sleep(500);
   lrun(58);
  }
  video(0);
 }
 if(y+v>6){
  er(x*5-1,27);
  ch(x*5-1,39,1);
  video(1);
 env(0);
  uart(0x80,0x0b,0x09,4,9,5,1,4,255,4,255);
  sleep(1000);
  uart(0x80,0x0b,0x09,4,255,5,255,5,255,4,255);
  exit();
 }
}
function main(){
 var d;
 while(1){
  if(rnd(10)<1){ //hole
   d=(gb&2)+1;
  }else{ //gr
   if(gb&1>0){
    d=((rnd(4)>0)*2;
   }else{
    d=gb&3;
   }
  }
  gb=(gb<<2)+d;
  db=(db<<1)+(rnd(10)<1)&0xffff;
  sb=(sb<<1)+(rnd(10)<1)&0xffff;
  s=s+1;
  if(sz>0){
8   sz=sz+1;
  }
  if(sz>31){
   sz=0;
   k=0;
   video(1);
  }
  dr(gb);
  jp();
  it(db,0x35,0);
  it(sb,0x1e,0);
  lc(5,10);
  log("SCORE ",s,"\n");
  uart(0x80,0x0b,0x09,5,255,5,255,5,255,5,255);
 }
}
cls();
uart("PC IMAGE 06\n");
main();

COMMENT