【はじめまして】
IchigoLatteで初めてのプログラミング。
まだ慣れておらず、作法違いのコーディングをしているかも。
同タイトルのIchigoLatte版(JavaScript版)です。
IchigoJam版と異なる部分だけ記載するので、一通りIchigoJam版をご覧ください。
チャートもIchigoJam版と共用になっています。
【遊び方】
・「MS .」すると、ゲームを開始します。
・カーソルキーの左右で、自機を操作
します。
・注意:
なぜかLattePlayerだと、初回の右側の
航路衝突判定が一つ早く行われます。
2機目からは大丈夫です、なぜだろう?
それとLatte版は音がありません。
【変数表】
ソースコード冒頭がパラメータ関連です。
(1)基本
Rst:自機残数
Sco:点数
Sco1Up:1UP間隔点数
Spd:ゲーム速度
SpdLim:ゲーム速度極限値(最速)
(2)亜空間航路関連
RodLen:航路長
RodX:航路左座標
RodW:航路幅
RodWLim:航路幅極限値(最小)
(3)自機(スターファイター)関連
FigX:自機横座標
FigY:自機縦座標
FigYLim:自機縦座標極限値(最上)
(4)敵機(UFO)関連
UfoX:敵機横座標
UfoY:敵機縦座標
UfoStr:敵機直進開始距離
// INI var Rst=3; var Sco=0; var Sco1Up=100; var Spd=90; var SpdLim=40; var RodLen=19; var RodX=12; var RodW=7; var RodWLim=4; var FigX=RodW/2+1; var FigY=RodLen-3; var FigYLim=5; var UfoX=FigX; var UfoY=0; var UfoStr=2; // // SCREEN // function drwScr(){ cls(); var i=0; while(i<RodLen){ lc(RodX,i); log(chr(0x85)); lc(RodX+RodW+1,i); log(chr(0x8a)); i=i+1; } if(FigX>RodW){FigX=RodW;} if(FigX<1 ){FigX=1;} UfoY=0; while(inkey()); } // // MOVE // function movChr(){ lc(RodX+FigX,FigY ); log(" "); lc(RodX+FigX,FigY+1); log(" "); lc(RodX+UfoX,UfoY ); log(" "); var key=0; key=inkey(); FigX=FigX +(key==0x1d)-(key==0x1c); if(UfoY>=RodLen){ UfoY=-1; UfoX=rnd(RodW)+1; } if(UfoY<(FigY-UfoStr)) {UfoX=UfoX+rnd(3)-1;} if(UfoX<1 ){UfoX=1; } if(UfoX>RodW ){UfoX=RodW; } if(UfoY<RodLen){UfoY=UfoY+1;} lc(RodX+FigX,FigY); log(chr(0xf1)); lc(RodX+UfoX,UfoY); log(chr(0xfa)); } // // SCORE // function getSco(){ if(UfoY<RodLen){return 0;} Sco=Sco+10; if(Sco%Sco1Up ){return 1;} lc(RodX,RodLen+2); log("1UP!"); sleep(500); lc(RodX,RodLen+2); log(" "); Rst=Rst+1; if(RodW>RodWLim){ RodW=RodW-1; drwScr(); } if((RodW<=RodWLim) *(Spd>=SpdLim)) {Spd=Spd-15;} if((Spd<=SpdLim) *(FigY>FigYLim)) {FigY=FigY-1;} } // // CRUSH // function crsFig(){ if(((1<=FigX)*(FigX<=RodW)) *((FigX!=UfoX)+(FigY!=UfoY)) ){return;} lc(RodX+FigX,FigY); log("*"); sleep(300); Rst=Rst-1; drwScr(); } // // MAIN // drwScr(); var w=1; while(w){ movChr(); getSco(); crsFig(); lc(0,1); log("SCORE=",Sco); lc(0,2); log(chr(0xf1),"=",Rst); sleep(Spd) if(Rst<1){w=0;} } lc(0,4); log("GAME OVER"); lc(0,6);