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

2018/09/30 21:46:24

MixJuice GET URL : kidspod.club/mj/638

海水浴wave lattecake

ichigolatte版 海水浴wave の画面表示をpancake で表示してみました。
かなり海の雰囲気になったので楽しんでください!

変更履歴
181007 効果音をbeepからpancakeのサウンドに変更。女の子のポーズを波に押されているときはバンザイに変更しました。
181014 波に押されているときはキー操作無効にしました。一回さわったときのパラソルの戻る量を少なくしました。ゲームオーバーでサウンドを鳴らすようにしました。

SOURCE CODE

//WAVE LATTE&PANCAKE VER
var w=new Array(15);
var x,y;
var px,py;
var i,s;
x=7;y=4;px=16;i=0;
while(i<15){
 w[i]=0;
 i=i+1;
}
function snd(s0,s1){
 uart(0x80,0x0b,0x09,4,s0,5,s1,4,255,5,255);
}
function spc(i,ch){
 uart(0x80,0x05,0x07,i,ch);
}
function spm(i,cx,cy){
 uart(0x80,0x06,0x08,i,cx,cy);
}
function cw(i,wt){
 var j;
 j=i*2;
 if(w[j+1]==0){ 
  if(rnd(10)>8){
   w[j+1]=-rnd(2)-1;
   w[j]=14;
  }
 }else{
  if(wt%w[j+1]==0){
   w[j]=w[j]-(w[j+1]<0)+(w[j+1]>0);
   if(w[j]<1){
    w[j+1]=-w[j+1];
   }
   if(w[j]>14){
    w[j+1]=0;
    spc(i,0xff);
   }
  }
 }
}
function prw(i){
 var j;
 j=i*2;
 var lp=0;
 var dw;
 if(i>0){
  dw=w[j]-w[j-2];
  if(dw*dw<2){
   lp=lp+1;
  } 
  if(i==py){
   dw=w[j]-px;
   if(dw*dw<2){
    lp=lp+1;
   }
  }
 }
 if(i<7){
  dw=w[j]-w[j+2];
  if(dw*dw<2){
   lp=lp+1;
  }
  if(i+2==py){
   dw=w[j]-px;
   if(dw*dw<2){
    lp=lp+1;
   }
  }
 }
 if((w[j]==x)*(i+1==y)*(lp>0)){
  snd(14,3+lp*(rnd(2)+1));
  spc(9,0x08);
  x=x+(w[j+1]>0)-(w[j+1]<0);
  s=s+lp;
  w[14]=w[14]+1;
  lc(9,7);
  log(s);
  lc(16,7);
  log("やっほー!");
 }
 if(lp<1){
 spc(i,0x53);
 }
 if(lp==1){
 spc(i,0x5b);
 }
 if(lp>1){
 spc(i,0x30);
 }
 spm(i,w[j]*5,i*5+5);
}
function me(){
 var k;
 if(w[14]<1){
  k=inkey();
 }else{
  k=0;
 }
 if(k!=0){
  lc(16,7);
  log("     ");
  spc(9,7);
 }
 x=x+(x<14)*(k==29)-(x>0)*(k==28);
 y=y+(y<7)*(k==31)-(y>1)*(k==30);
 spm(9,x*5,y*5);
}
function pal(){
 if((px==x)*(py==y)){
  px=px+6;
  spm(8,px*5+2,py*5);
 }
 if(px>14){
  py=rnd(7)+1;
 }
 if((px>-1)*(rnd(7)==0)){
  px=px-1;
  spc(8,0x4e);
  spm(8,px*5+2,py*5);
 }
 if(px<0){
  lc(8,11);
  log("は゜らそるとんし゛ゃった!\n");
  snd(9,1);
  sleep(1000);
  snd(255,255);
  break();
 }
}
function main(){
 cls();
 uart("PC SPRITE START 04\n");
 spc(9,0x07);
 spm(9,x*5,y*5);
 s=0;
 lc(7,7);
 log("S 0");
 var wt=0;
 while(1){
  i=0;
  while(i<7){
   cw(i,wt);
   if(w[i*2+1]!=0){
    prw(i);
   }
   i=i+1;
  }
  me();
  w[14]=0;
  wt=(wt+1)%3;
  sleep((s<1001)*(100-s/10));
  snd(255,255);
  pal();
 }
}
main();

COMMENT