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/04 13:50:21

MixJuice GET URL : kidspod.club/mj/661

ジャンプゲームichigolatte,pancake版

SHIROさんが以前ご自分のホームページにichigojam版で公開されていたジャンプゲームをichigolatte,pancakeに移植しました。
pancakeで横スクロール機能はないので道とアイテムだけが画面右から左へ流れます。。
右に向かって三輪車で走るあなたは地面の穴をジャンプで避けて進んでください。
流れてくる金貨(黄色)を取ると+100点、イチゴ(赤)を取るとスピードアップします。
スピードアップ中は速度出すためichigolatteの画面は消しています。ichigolatteの最高速度を見てみてください。
またpancakeならではのグラフィックとサウンド表現で楽しい作品になってますのでぜひ遊んで見てください。

SOURCE CODE

// JUMP 1 KEY
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=5,y=6,v=0,jf=0,k,w=3,db=0,sb=0,sz=0,s=0;
function er(ex,ey){
 uart(0x80,0x0e,0x03,ex,ey,1,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;
 while(j<16){
  g0=gb>>j&1;
  g1=gb>>(j+1)&1;
  uart(0x80,0x08,0x01,80-j*5,42);
  while((g0==g1)*(j<15)){
   j=j+1;
   g1=gb>>(j+1)&1;
  }
  uart(75-j*5,42,g0);
  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,1,255,255,255,255,255,255,255,255);
   }
  }
  j=j+1;
 }
 er(0,iy);
}
function jp(){
 k=inkey(); 
 if((k==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);
 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>>10&1>0)*(y==3)){
  db=db&0xfbff;
  s=s+100;
  uart(0x80,0x0b,0x09,7,7,5,5,5,255,5,255);
 }
 if((sb>>10&1>0)*(y==3)){
  sz=1;
  sb=sb&0xfbff;
  video(0);
 }
 if((gb>>10&1>0)*(y>5)){
  er(x*5-1,27);
  ch(x*5-1,39,1);
  video(1);
  log(sz);
  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(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;
   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