複数のレーン(?)を表示させ、上から落とすスクリプト。[キー判定付(未完成)]
//[<-]マークのついている行は、ランダム表示関連命令なので、
//譜面データを元に表示する場合はその行を消す
ButtonNum=9
dim ColorData,3,ButtonNum//色データ
dim DownNotesData,2,ButtonNum+1//ノーツ情報データ
ColorData(0,0)=255,246,237
ColorData(0,1)=254,233,20
ColorData(0,2)=115,229,116
ColorData(0,3)=12,106,193
ColorData(0,4)=176,44,29
ColorData(0,5)=12,106,193
ColorData(0,6)=255,246,237
ColorData(0,7)=254,233,20
ColorData(0,8)=115,229,116
DownNotesData(0,ButtonNum)=1
NotesSizeY=20
LanePX=50:LanePY=50
LaneSX=60:LaneSY=200
BufferSize=600,220
i=100//<-
buffer 1//バッファ
repeat ButtonNum
color ColorData(0,cnt),ColorData(1,cnt),ColorData(2,cnt)
boxf LanePX+(LaneSX*cnt),LanePY,LaneSX+(LanePX+(LaneSX*cnt)),LaneSY
loop
screen 0
onkey gosub *Key
*MainLoop
redraw 0
color 0,0,0:boxf 0,0,BufferSize(0)-1,BufferSize(1)-1
gmode 3,BufferSize(0),BufferSize(1),150
pos 0,0:gcopy 1,0,0,BufferSize(0),BufferSize(1)
await 1
if DownNotesData(0,ButtonNum)=1{
repeat ButtonNum
if DownNotesData(0,cnt)=1{
if DownNotesData(1,cnt)>=(LaneSY-LanePY-NotesSizeY){
DownNotesData(1,cnt)=0:DownNotesData(0,cnt)=0
continue
}
DownNotesData(1,cnt)++
color ColorData(0,cnt),ColorData(1,cnt),ColorData(2,cnt)
boxf LanePX+(LaneSX*cnt),LanePY+DownNotesData(1,cnt),LaneSX+(LanePX+(LaneSX*cnt)),LanePY+NotesSizeY+DownNotesData(1,cnt)
}
loop
}
color 255,255,255
line LanePX,LaneSY-NotesSizeY,LanePX+(LaneSX*ButtonNum),LaneSY-NotesSizeY
if i>100:DownNotesData(0,rnd(ButtonNum))=1//<-
i++:if i>500:i=rnd(100)//<-
redraw 1
await 9
goto *MainLoop
*Key
if wparam>=49 & wparam<=49+ButtonNum{//1キーから順に各レーンに割り当てられる
NotesID=wparam-48
if DownNotesData(1,NotesID)<=(LaneSY-LanePY-NotesSizeY) & DownNotesData(1,NotesID)>=(LaneSY-LanePY-NotesSizeY)-(NotesSizeY/2){
Good++
title "Good:"+Good
pos (LaneSX*NotesID),LanePY+LaneSY+20
color 0,0,0
mes "Good"
}
}
return