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:04:06

MixJuice GET URL : kidspod.club/mj/670

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

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

SOURCE CODE

// JUMP HEVEN
function pi(){
 uart("PC IMAGE 00\n");
 uart("PC LINE 00 2C 4F 2C 01\n");
 uart("PC LINE 00 2B 4F 2B 01\n");
}
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;
}
function er(ex,ey){
 uart(0x80,0x0e,0x03,ex,ey,6,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;
 while(j<16){
  g0=gb>>j&1;
  uart(0x80,0x08,0x01,80-j*5,42,75-j*5,42,g0*1);
  j=j+1;
 }
}
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,6,248,248,248,248,248,248,248,248);
   }
  }
  j=j+1;
 }
 er(0,iy);
}
function jp(){
 var ik;
 ik=inkey();
 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;
 }
 ch(x*5-1,y*4+9+s%2,0x0e);
 ch(x*5-1,y*4+7+s%2,3);
 if(y>5){
  jf=0;
  v=0;
 }
 if((db>>(15-x)&1>0)*(y==3)){
  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==3)){
  sz=1;
  sb=sb&~(1<<15-x);
  k=k+1;
  if(k>1){
   sleep(500);
   env(s);
   video(1);
   lrun(59);
  }
  video(0);
 }
 if((gb>>(15-x)&1>0)*(y>5)){
  er(x*5-1,27);
  ch(x*5-1,39,1);
  video(1);
  uart(0x80,0x0b,0x09,4,9,5,1,4,255,4,255);
  sleep(500);
  uart(0x80,0x0b,0x09,4,255,5,255,5,255,4,255);
  env(s);
  sleep(500);
  lrun(57);
 }
}
function main(){
 var d;
 while(1){
  if(gb>>13==7){
   d=0;
  }else{
   d=(rnd(10)<1);
  }
  gb=(gb<<1)+d&0xffff;
  db=(db<<1)+(rnd(10)<1)&0xffff;
  sb=(sb<<1)+(rnd(20)<1)&0xffff;  s=s+1;
  if(sz>0){
   sz=sz+1;
  }
  if(sz>31){
   sz=0;
   k=0;
   video(1);
  }
  dr(gb);
  jp();
  it(db,0x35,22);
  it(sb,0x1e,22);
  lc(5,10);
  log("SCORE ",s,"\n");
  uart(0x80,0x0b,0x09,5,255,5,255,5,255,5,255);
 }
}
cls();
pi();
main();

COMMENT