スクリプト/クリックによるマップ移動
最終投稿者:
taki
更新:2014/09/03 22:43:44
タイトルからはどんなものか分かりづらいのでサンプルを
http://rmake.jp/games/26908/limited_play
ユーザーID : qwer
パスワード : qwer
作成にあたっては次のページを参考にしています
クリックに関して
ティラミスさん作
スクリプト/指定した範囲をクリックしているか判定する
画像の表示に関して
aoihikawaさん作
スクリプト/Rmakeで自由なゲームをつくろう / 第02回 画面にキャラクターを描画する
スクリプトはこんな感じです
<開始スクリプト>
それから各マップに次のイベントが作ってあります(プレイヤーのいるマップを識別するためです)
・自動スタートです
<有効条件>
<内容>
数字はマップに対応するものを自分で適当に決めてください
サンプルの場合、家:2、城:3、 森:4と言った感じです
・指定した範囲内をクリックしたかどうか
・画像の表示
がメインでおまけがいろいろくっついている形です
スクリプトの解説は、また後日
わかりやすい日本語で解説してくれる方募集(切実)
質問などありましたらコメントにお願いします
ツイート
http://rmake.jp/games/26908/limited_play
ユーザーID : qwer
パスワード : qwer
作成にあたっては次のページを参考にしています
クリックに関して
ティラミスさん作
スクリプト/指定した範囲をクリックしているか判定する
画像の表示に関して
aoihikawaさん作
スクリプト/Rmakeで自由なゲームをつくろう / 第02回 画面にキャラクターを描画する
スクリプトはこんな感じです
<開始スクリプト>
setVariable("genzaiiti",0)
setVariable("mapno",0)
setVariable("idousaki",createArray())
def idou()
#範囲内にいるかどうかのフラグの初期化
setFlag("inside",false)
#画像の表示の下準備↓
id1=createSprite(256187)
id2=createSprite(256194)
id3=createSprite(256201)
id4=createSprite(256241)
setSpriteRect(id1,0,0,512,384,0,0,512,384)
setSpriteRect(id2,0,0,96,96,0,0,96,96)
setSpriteRect(id3,0,0,96,96,0,0,96,96)
setSpriteRect(id4,0,0,96,96,0,0,96,96)
setSpritePosition(id1, 0, 0)
setSpritePosition(id2, 80, 150)
setSpritePosition(id3, 300, 70)
setSpritePosition(id4, 390, 250)
setSpriteZOrder(id1, 0)
setSpriteZOrder(id2, 1)
setSpriteZOrder(id3, 1)
setSpriteZOrder(id4, 1)
#画像の表示の下準備,ここまで↑
#画像の表示
setCanvasVisible(true)
drawCanvas()
speak("移動先をクリックしてください")
#マウスの入力を調べるためのループ↓
#入力の取得を始めます
startInput()
#ループし続けるように変数を設定します。
loop = true
#loop変数がtrueの間はループし続けます。
while loop
#入力が入っているかどうか調べます。
while hasInput()
#内部にたまっている入力を処理対象とします。
takeInput()
#移動先の画像をクリックした場合の処理↓
if isMouseDown() #マウスのボタンが押されている場合
#マウスの位置を取得します。
pos = getMousePosition()
x=pos[0]
y=pos[1]
if x>=80&&x<=176&&y>=150&&y<=246
setVariable("mapno",2)
getVariable("idousaki")[0]=37899
getVariable("idousaki")[1]=7
getVariable("idousaki")[2]=9
elsif x>=300&&x<=396&&y>=90&&y<=186
setVariable("mapno",3)
getVariable("idousaki")[0]=37901
getVariable("idousaki")[1]=7
getVariable("idousaki")[2]=10
elsif x>=390&&x<=486&&y>=250&&y<=346
setVariable("mapno",4)
getVariable("idousaki")[0]=37900
getVariable("idousaki")[1]=7
getVariable("idousaki")[2]=9
end
if getFlag("inside")
if getVariable("genzaiiti")==getVariable("mapno")
case speakWithSelect(2,"はい","いいえ","移動をやめますか?")
when 0
loop = false
deleteAllSprite()
setCanvasVisible(false)
when 1
end
else
case speakWithSelect(2,"はい","いいえ","移動しますか?")
when 0
loop = false
playSound(82829)
warp(getVariable("idousaki")[0],
getVariable("idousaki")[1],getVariable("idousaki")[2] )
when 1
end
end
end
#移動先の画像をクリックした場合の処理、ここまで↑
#マウスが移動先の画像の所に来た場合にポップアップして効果音を鳴らしている部分↓
elsif isMouseMove() #マウスが動いた場合
#マウスの位置を取得します。
pos = getMousePosition()
x=pos[0]
y=pos[1]
if x>=80&&x<=176&&y>=150&&y<=246
if getFlag("inside")!=true
playSound(82828)
setSpriteScale(id2, 1.3, 1.3)
drawCanvas()
setFlag("inside",true)
end
elsif x>=300&&x<=396&&y>=90&&y<=186
if getFlag("inside")!=true
playSound(82828)
setSpriteScale(id3, 1.3, 1.3)
drawCanvas()
setFlag("inside",true)
end
elsif x>=390&&x<=486&&y>=250&&y<=346
if getFlag("inside")!=true
playSound(82828)
setSpriteScale(id4, 1.3, 1.3)
drawCanvas()
setFlag("inside",true)
end
else #マウスが移動先の画像から離れた場合に、元の大きさに戻している部分
if getFlag("inside")==true
setSpriteScale(id2, 1, 1)
setSpriteScale(id3, 1, 1)
setSpriteScale(id4, 1, 1)
drawCanvas()
setFlag("inside",false)
end
end
end
end
#マウスが移動先の画像の所に来た場合にポップアップして効果音を鳴らしている部分、ここまで↑
#入力がないときに無駄に処理をしないように30ミリ秒waitを入れます。
waitTime(30)
end
#入力の取得を終了します。
endInput()
end
それから各マップに次のイベントが作ってあります(プレイヤーのいるマップを識別するためです)
・自動スタートです
<有効条件>
getVariable("genzaiiti")!=2<内容>
setVariable("genzaiiti",2)数字はマップに対応するものを自分で適当に決めてください
サンプルの場合、家:2、城:3、 森:4と言った感じです
・指定した範囲内をクリックしたかどうか
・画像の表示
がメインでおまけがいろいろくっついている形です
スクリプトの解説は、また後日
わかりやすい日本語で解説してくれる方募集(切実)
質問などありましたらコメントにお願いします
コメントする
コメントするには、ログインする必要があります。
コメント一覧
コメントはありません。