どうも、途中で、dropという変数が1になっちゃっているようなのですが・・・
お手数ですが、教えてください。
#enum m_block #enum m_hatena #enum m_star #enum m_kuri #enum m_tubure ;#enum jump ;#enum drop ;#enum stp #const WINDOWX 180 #const WINDOWY 180 #const CIRCLEX 30 #const CIRCLEY 113 #const CIRCLESIZE 30 #const BLOCKSIZE 30 *top screen 0,WINDOWX,WINDOWY cirx=CIRCLEX ciry=CIRCLEY dontp=0 dontm=0 ;ddim block,33 ;ddim blockx,33 ;ddim blocky,33 ;ddim mode,33 ;ddim work,33 repeat 33 //配列を初期化 block(cnt)=0 work(cnt)=0 blockx(cnt)=200 blocky(cnt)=200 mode(cnt)=m_block loop gosub *block_ichi// ブロックの座標指定 font "MS ゴシック",CIRCLESIZE repeat 200000 if cnt >=(200000-10):else:if cnt >=(200000-100):font "MS ゴシック",20:else:font "MS ゴシック",10 pos 0,0:print "time"+(200000-cnt) //残り時間表示 pos x,y:picload "haikei.bmp",1 //背景表示 font "MS ゴシック",CIRCLESIZE:pos cirx,ciry:mes "●" stick key,23 //キー入力 if dontp=0:if key=1|key=3:x+=5 if dontp=0:if key=17|key=19:x+=10 if dontm=0:if key=4|key=6:x-=5 if dontm=0:if key=20|key=22:x-=10 if key&2:/*if jcnt=0:*/jump=1/*c_mode=jump*/ repeat 33 if work(cnt)=1:block(cnt)-=3 //きのこの動き if (x+block(cnt)+BLOCKSIZE)>=0 & (x+block(cnt))<=WINDOWX:blockx(cnt)=(x+block(cnt)):if mode(cnt)=m_kuri:work(cnt)=1 if (x+block(cnt)+BLOCKSIZE)>=0 & (x+block(cnt))<=WINDOWX:else:blockx(cnt)=3000/*画面の外へ*/ loop dontp=0:dontm=0 gosub *wblock;73 if jcnt=6:jcnt=0:/*c_mode=drop*/drop=1:jump=0:else:if jump=1/*c_mode=jump*/:ciry-=10:jcnt++ //ジャンプ if drop=1/*c_mode=drop*/:ciry+=10:if ciry>=CIRCLEY:/*c_mode=stp:*/jump=0:drop=0:jcnt=0 if x<0:else:dontp=1 //端で進めなくする if (x+2580)>=0:else:dontm=1 wait 1 loop cls:mes "GAME OVER";時間切れ stop *wblock repeat 33 pos blockx(cnt),blocky(cnt) if mode(cnt)=m_block:picload "block.bmp",1 if mode(cnt)=m_hatena:picload "hatena.bmp",1 if mode(cnt)=m_kuri:picload "kuri.bmp",1 if (blockx(cnt)-CIRCLESIZE)<cirx & cirx<(blockx(cnt)+BLOCKSIZE)/*幅*/:if (blocky(cnt)+BLOCKSIZE)>ciry & ciry>(blocky(cnt)+SIRCLESIZE)/*下の高さ*/:hikisu=cnt/*cntを引き渡す*/:gosub *shita if (blockx(cnt)-CIRCLESIZE)<cirx & cirx<(blockx(cnt)+BLOCKSIZE)/*幅*/:if blocky(cnt)>(ciry+CIRCLESIZE-5) & (ciry+CIRCLESIZE+5)>blocky(cnt)/*ブロックの上*/:hikisu=cnt:gosub *ue if onblock=0:if (blockx(cnt)-CIRCLESIZE)<=cirx & cirx<=(blockx(cnt)+BLOCKSIZE):else:if blocky(cnt)>(ciry+(CIRCLESIZE-5)) & (ciry+(CIRCLESIZE+5))>blocky(cnt)/*ブロックの上→それ以外*/:hikisu=cnt:gosub *out_b if (blockx(cnt)-CIRCLESIZE-5)<cirx & cirx<(blockx(cnt)+(BLOCKSIZE/2)-CIRCLESIZE)/*幅*/:if blocky(cnt)<(ciry+(CIRCLESIZE-5)) & ciry<(blocky(cnt)+BLOCKSIZE):hikisu=cnt:gosub *hidari /*左から横を通り抜けられなくする*/ if (blockx(cnt)+(BLOCKSIZE/2+1))<cirx & cirx<(blockx(cnt)+BLOCKSIZE)/*幅*/:if blocky(cnt)<(ciry+(CIRCLESIZE-5)) & ciry<(blocky(cnt)+BLOCKSIZE):hikisu=cnt:gosub *migi /*右から横を通りぬけられなくする*/ loop onblock=0 return *shita if mode(hikisu)=m_block | mode(hikisu)=m_hatena:/*c_mode=drop*/drop=1:jump=0:if mode(hikisu)=m_hatena:mode(hikisu)=m_star:gosub *hatena_touch if mode(hikisu)=m_kuri:mode(hikisu)=m_tubure return *ue if mode(hikisu)=m_block | mode(hikisu)=m_hatena:/*c_mode=stp*/drop=0:onblock=1:jcnt=0 if mode(hikisu)=m_kuri:mode(hikisu)=m_tubure return *hidari if mode(hikisu)=m_block | mode(hikisu)=m_hatena:dontm=1 if mode(hikisu)=m_kuri:goto *hit return *migi if mode(hikisu)=m_block | mode(hikisu)=m_hatena:dontp=1 if mode(hikisu)=m_kuri:goto *hit return *out_b if mode(hikisu)<=m_tubure:/*c_mode=drop*/drop=1 return *hatena_touch repeat 30 if mode(cnt)=m_star:pos blockx(cnt),(blocky(cnt)-30):print "☆":mode(cnt)=m_block:goto *clear loop return *hit mes "ゲームオーバー" stop *block_ichi block(0)=240:blocky(0)=80 block(1)=280:blocky(1)=60 block(2)=400:blocky(2)=90 block(3)=520:blocky(3)=60 block(4)=560:blocky(4)=60 block(5)=480:blocky(5)=60 block(6)=440:blocky(6)=60//:mode(6)=m_hatena block(7)=0:blocky(7)=500 block(8)=0:blocky(8)=600 block(9)=0:blocky(9)=700 block(10)=0:blocky(10)=700 block(11)=0:blocky(11)=400 block(12)=0:blocky(12)=300 block(13)=0:blocky(13)=700 block(14)=0:blocky(14)=700 block(15)=0:blocky(15)=300 block(16)=0:blocky(16)=300 block(17)=400:blocky(17)=50:mode(17)=m_kuri block(18)=600:blocky(18)=110:mode(18)=m_kuri block(19)=1000:blocky(19)=110:mode(19)=m_kuri block(20)=3180:blocky(20)=110:mode(20)=m_kuri block(21)=2980:blocky(21)=110:mode(21)=m_kuri block(22)=2780:blocky(22)=110:mode(22)=m_kuri block(23)=2580:blocky(23)=110:mode(23)=m_kuri block(24)=2380:blocky(24)=110:mode(24)=m_kuri block(25)=2030:blocky(25)=110:mode(25)=m_kuri block(26)=1980:blocky(26)=110:mode(26)=m_kuri block(27)=1780:blocky(27)=110:mode(27)=m_kuri block(28)=1580:blocky(28)=110:mode(28)=m_kuri block(29)=1380:blocky(29)=110:mode(29)=m_kuri //block(30)=240:blocky(30)=110:mode(30)=m_kuri //block(31)=280:blocky(31)=110:mode(31)=m_kuri block(32)=1180:blocky(32)=110:mode(32)=m_kuri return *clear wait 100 cls mes "クリア!" stop