スクリプト/画面上にボタンを作る関数(履歴ID:650)
最終投稿者:
cfm_
更新:2016/01/21 01:48:01
cfm_
更新:2016/01/21 01:48:01
この関数を使うには、こちらスクリプト/キー入力を1行で取得する関数の関数を入れる必要があります。
この関数のスクリプトより先に実行されるよう貼り付けてください。
関数のスクリプト
このゲームのスクリプト
この関数のスクリプトより先に実行されるよう貼り付けてください。
#スクリプトの最初に記述が必要 button_start() #ボタンを作成する(ボタン番号,通常時画像,押下中画像,画像幅,画像高さ,左上X,左上Y,右下X,右下Y) # index(ボタン番号)は-1以外の数値です。 # img0,img1に0を入れると、それぞれ画像を表示しません # 2つの画像は同じサイズで用意してください。 # 左上と右下の座標によって、自動で画像を拡大縮小します。 button_add(index,img0,img1,imgw,imgh,x0,y0,x1,y1,ZOrder) #ボタンがクリックされたらTrueを返す button_get(index) #ボタンを削除する button_delete(index) #ボタンをすべて削除する button_alldelete() #すべてのボタンの番号が入った配列を取得 button_getarray()
関数のスクリプト
#スクリプトの最初に記述が必要。
def button_start()
setCanvasVisible(true)
setVariable("btn_ctrl",createArray())
setVariable("btn_img0",createArray())
setVariable("btn_img1",createArray())
setVariable("btn_imgnum0",createArray())
setVariable("btn_imgnum1",createArray())
setVariable("btn_x0",createArray())
setVariable("btn_y0",createArray())
setVariable("btn_x1",createArray())
setVariable("btn_y1",createArray())
setVariable("btn_z",createArray())
setVariable("btn_imgw",createArray())
setVariable("btn_imgh",createArray())
setVariable("btn_push",createArray())
end
#ボタンを作成(ボタン番号,通常時画像,押下中画像,画像幅,画像高さ,左上X,左上Y,右下X,右下Y)
#img0,img1に0を入れると、それぞれ画像を表示しません
#2つの座標によって、自動で画像を拡大縮小します。
#2つの画像の幅と高さは同じにしてください。
#indexは-1以外の数値。
def button_add(index,img0,img1,imgw,imgh,x0,y0,x1,y1,ZOrder)
getVariable("btn_imgw")[index]=imgw
getVariable("btn_imgh")[index]=imgh
getVariable("btn_imgnum0")[index]=img0
getVariable("btn_imgnum1")[index]=img1
getVariable("btn_x0")[index]=x0
getVariable("btn_y0")[index]=y0
getVariable("btn_x1")[index]=x1
getVariable("btn_y1")[index]=y1
getVariable("btn_z")[index]=ZOrder
pushArray(getVariable("btn_ctrl"), index)
if img0==0
getVariable("btn_img0")[index]=0
else
getVariable("btn_img0")[index]=createSprite(img0)
setSpriteRect(getVariable("btn_img0")[index],0,0,getVariable("btn_imgw")[index],getVariable("btn_imgh")[index],0,0,getVariable("btn_x1")[index]-getVariable("btn_x0")[index]+1,getVariable("btn_y1")[index]-getVariable("btn_y0")[index]+1)
setSpritePosition(getVariable("btn_img0")[index],getVariable("btn_x0")[index],getVariable("btn_y0")[index])
setSpriteZOrder(getVariable("btn_img0")[index],getVariable("btn_z")[index])
drawCanvas()
end
getVariable("btn_img1")[index]=0
end
#ボタンがクリックされたらTrueを返す
def button_get(index)
b=0
x=input_getmousex()
if getVariable("btn_x0")[index]<x&&x<getVariable("btn_x1")[index]
y=input_getmousey()
if getVariable("btn_y0")[index]<y&&y<getVariable("btn_y1")[index]
if input_getmouse("HOLD")
if !getVariable("btn_push")[index]
if getVariable("btn_img0")[index]!=0
deleteSprite(getVariable("btn_img0")[index])
getVariable("btn_img0")[index]=0
end
if getVariable("btn_imgnum1")[index]!=0
getVariable("btn_img1")[index]=createSprite(getVariable("btn_imgnum1")[index])
setSpriteRect(getVariable("btn_img1")[index],0,0,getVariable("btn_imgw")[index],getVariable("btn_imgh")[index],0,0,getVariable("btn_x1")[index]-getVariable("btn_x0")[index]+1,getVariable("btn_y1")[index]-getVariable("btn_y0")[index]+1)
setSpritePosition(getVariable("btn_img1")[index],getVariable("btn_x0")[index],getVariable("btn_y0")[index])
setSpriteZOrder(getVariable("btn_img1")[index],getVariable("btn_z")[index])
end
drawCanvas()
getVariable("btn_push")[index]=true
end
elsif getVariable("btn_push")[index]#離されたとき
b=2
end
elsif getVariable("btn_push")[index]
b=1
end
elsif getVariable("btn_push")[index]
b=1
end
if b==1||b==2
if getVariable("btn_img1")[index]!=0
deleteSprite(getVariable("btn_img1")[index])
getVariable("btn_img1")[index]=0
end
if getVariable("btn_imgnum0")[index]!=0
getVariable("btn_img0")[index]=createSprite(getVariable("btn_imgnum0")[index])
setSpriteRect(getVariable("btn_img0")[index],0,0,getVariable("btn_imgw")[index],getVariable("btn_imgh")[index],0,0,getVariable("btn_x1")[index]-getVariable("btn_x0")[index]+1,getVariable("btn_y1")[index]-getVariable("btn_y0")[index]+1)
setSpritePosition(getVariable("btn_img0")[index],getVariable("btn_x0")[index],getVariable("btn_y0")[index])
setSpriteZOrder(getVariable("btn_img0")[index],getVariable("btn_z")[index])
end
drawCanvas()
getVariable("btn_push")[index]=false
end
return b==2
end
#すべてのボタンの番号が入った配列を取得
def button_getarray()
a=createArray()
len=getArrayLength(getVariable("btn_ctrl"))
j=0
i=0
while i<len
if getVariable("btn_ctrl")[i]!=-1
a[j]=getVariable("btn_ctrl")[i]
j=j+1
end
i=i+1
end
return a
end
def button_delete(index)
i=getArrayLength(getVariable("btn_ctrl"))-1
while -1<i
if getVariable("btn_ctrl")[i]==index
if getVariable("btn_img0")[index]!=0
deleteSprite(getVariable("btn_img0")[index])
elsif getVariable("btn_img1")[index]!=0
deleteSprite(getVariable("btn_img1")[index])
end
drawCanvas()
getVariable("btn_ctrl")[i]=-1
return true
end
i=i-1
end
return false
end
def button_alldelete()
i=getArrayLength(getVariable("btn_ctrl"))-1
while -1<i
if getVariable("btn_ctrl")[i]!=-1
if getVariable("btn_img0")[getVariable("btn_ctrl")[i]]!=0
deleteSprite(getVariable("btn_img0")[getVariable("btn_ctrl")[i]])
elsif getVariable("btn_img1")[getVariable("btn_ctrl")[i]]!=0
deleteSprite(getVariable("btn_img1")[getVariable("btn_ctrl")[i]])
end
getVariable("btn_ctrl")[i]=-1
end
i=i-1
end
drawCanvas()
end
このゲームのスクリプト
input_start()
button_start()
i=0
while i<7
x=rand(400)
y=rand(400)
button_add(i,300405,300412,32,32,x,y,x+20+rand(20),y+20+rand(20),7)
i=i+1
end
cnt=0
while true
i=0
while i<7
if button_get(i)
speak("それは"+toString(i)+"番のボタンだ。")
if i==cnt
cnt=cnt+1
if cnt==7 then goEnding();end
else
cnt=0
speak("順番に押そう。")
end
end
i=i+1
end
end