せっかくモジュール化したので一本新作
シンプルに音ゲー
4つのレーンで落ちてくるので5段め以下で+1 2段め以下で+2 ないときに押すと-1
レーンは左からLUDR、AB同時押しで終了
最後までいくとスコア表示します。
骨格で1時間
演出で1時間ぐらいで作成しています。
シンプルに音ゲー
4つのレーンで落ちてくるので5段め以下で+1 2段め以下で+2 ないときに押すと-1
レーンは左からLUDR、AB同時押しで終了
最後までいくとスコア表示します。
骨格で1時間
演出で1時間ぐらいで作成しています。
import dmbos as dm import time import random #title dm.text(0,0,"D",9) dm.text(4,0,"M",9) dm.text(0,4,"B",9) dm.text(4,4,"8",9) time.sleep(0.2) dm.cls() for c in "OTOAME": dm.text(2,2,c,9) time.sleep(0.2) dm.cls() time.sleep(0.1) #display sub def getWorld(sx,sy,wx,wy): mx=0 for x in range(sx,sx+wx): for y in range(sy,sy+wy): if world[y][x]==1:return 9 return mx def writeWorld(): scx=[1,1,1,1,1,1,1,1] scy=[4,2,1,1,1,1,1,1] sy=wy-12 for y in range(8): sx=0 for x in range(8): dm.vram[y][x]=getWorld(sx,sy,scx[x],scy[y]) sx+=scx[x] sy+=scy[y] #stage def makeWorld(n): global world p=0 while p<n: x=random.randint(0,3) y=random.randint(12,100) if world[y][x*2]==0: p+=1 world[y][x*2]=1 world[y][x*2+1]=1 #atari def hit(x): global world,wy,score #0 1 great #2 3 4 good s,dy=0,0 if world[wy][x]==1:s,dy=2,0 elif world[wy-1][x]==1:s,dy=2,-1 elif world[wy-2][x]==1:s,dy=1,-2 elif world[wy-3][x]==1:s,dy=1,-3 elif world[wy-4][x]==1:s,dy=1,-4 else:s,dy=-1,-1 score+=s if dy<=0: if s==2:dm.play(1,[j for j in [40,44,48] ]) if s==1:dm.play(1,[j for j in [40,42,44] ]) world[wy+dy][x]=0 world[wy+dy][x+1]=0 #init wy=119 score=0 world=[[0 for i in range(8)] for j in range(120)] makeWorld(30) while wy>=0: #key if dm.button()=="AB": break if "L" in dm.button(): hit(0) if "U" in dm.button(): hit(2) if "D" in dm.button(): hit(4) if "R" in dm.button(): hit(6) #display writeWorld() #createsound s=[] for x in range(8): if world[wy-12][x]==1:s+=[50+x] if len(s)>0: dm.play(0,[j for j in s]) #dropsound s=[] for x in range(8): if world[wy][x]==1:s+=[30+x] if len(s)>0: dm.play(2,[j for j in s]) time.sleep(0.2) wy-=1 #playscore score=max(0,score) dm.text(0,0,str(int(score/10)),9) dm.text(4,4,str(int(score%10)),7) dm.play(1,[j for j in range(score,score+20,2)]) print(score) time.sleep(2) dm.clear()