きゃりーくえすと をつくって

投稿者:User icon mini apharmd 投稿日:2010/05/04 02:34

後で見てみたら修正した方がいいなと思ったので追記&修正しました
気になったところがあったら気軽に聞いてください。

自分でテストプレーしてて気になったこととか

概要でも書いたけど石が上下に隣あったとき上を押す分には問題ないけど
下のを押すとき上にはみ出して押すと上が動いちゃうのはどうしてなんだろうなと
悩んでスクリプトもいろいろと変えてみたけど無理でふと思った。
これは話しかける(調べる)判定の問題で、そしてその判定は左上あたりなのかなと
原点も左上らしいし。
もともとモノを動かすことは想定してないだろうし、隣り合う場合ならなおさらかなw

まだ完全とは言えないと思うけど物を押したり引いたりするスクリプトを書いておきます。

スクリプト/物を押す(暫定版)
http://page.rmake.jp/wikis/29
を参考にしました。
改良したところは
・押す度に場所を調べてるので壁に押し付けてさらに押しても斜めに動かない
・開始スクリプトに座標を書かなくてもいい(もとに戻すときは書かないといけないけど)


このスクリプトではmpが3減ると1回引けるようにしています。
開始スクリプト
setVariable("MPmax", getPlayerMaxMP())

動かすもの(イベント)
#プレイヤーの座標を求める
Player_Xpos=floor(getPlayerPosX()/32)
Player_Ypos=floor(getPlayerPosY()/32)
setVariable("p_Xpos", Player_Xpos)
setVariable("p_Ypos", Player_Ypos)

#押す、引くを変える処理(アイテムを使ってMPが減ったら引く)
   if getPlayerMP()==getVariable("MPmax")
     DR_dir=1 #上と右からおした場合
     UL_dir=-1 #下と左からおした場合
   else
     DR_dir=-1 
     UL_dir=1
     setVariable("MPmax", getVariable("MPmax")-3) #MPmaxを-3して現在のMPをあわせて押せるようにする
     setVariable("mr_cnt3", getVariable("mr_cnt3")+1) #マジカルロープを使った回数をカウント
   end

      #プレイヤーの向きによってイベントの座標を求めて移動先を代入
      case getEventDirection("playerCharacterEvent")
         when getDownDirection()
             setVariable("e0_Ypos", Player_Ypos+(DR_dir+DR_dir))#イベントの座標+移動分
             setVariable("e0_Xpos", Player_Xpos)
             #プレイヤーも移動
             setVariable("p_Ypos", getVariable("p_Ypos") + DR_dir)
         when getUpDirection()
             setVariable("e0_Ypos", Player_Ypos+(UL_dir+UL_dir))
             setVariable("e0_Xpos", Player_Xpos)
             setVariable("p_Ypos", getVariable("p_Ypos") +UL_dir)
         when getRightDirection()
            setVariable("e0_Ypos", Player_Ypos)
            setVariable("e0_Xpos", Player_Xpos+DR_dir+DR_dir)
            setVariable("p_Xpos", getVariable("p_Xpos") +DR_dir)
         when getLeftDirection()
            setVariable("e0_Ypos", Player_Ypos)
            setVariable("e0_Xpos", Player_Xpos+(UL_dir+UL_dir))
            setVariable("p_Xpos", getVariable("p_Xpos") +UL_dir )
      end    
   
     #石の位置を移動
     setEventTarget("event0", getVariable("e0_Xpos"), getVariable("e0_Ypos")) 
     setEventTarget("playerCharacterEvent", getVariable("p_Xpos"), getVariable("p_Ypos")) 
     runEventMove()

     setVariable("s3p", getVariable("s3p")+1)#石を押したらカウントを+1

#どれかの魔方陣に石がのったらその石のフラグをtrueに、外れたらfalseに
if((getVariable("e0_Xpos")==14)&&(getVariable("e0_Ypos")==12))||
((getVariable("e0_Xpos")==19)&&(getVariable("e0_Ypos")==16))||
((getVariable("e0_Xpos")==19)&&(getVariable("e0_Ypos")==19))
   setFlag("e0pos", true)
else
   setFlag("e0pos", false)
end


あと最初、開始方法を自動的に実行にして有効条件をMPがある数になったらフラグがたって
ものが引けるようにしたのだけどMP減ってもなにかイベントを起こさないと有効にならなかった。
「自動的に実行」は有効条件を満たしていてもなにかイベントを起こさないと実行しないのかな。

それと階段を重なったら開始にしているんだけど階段の周りでもzキーを押すと実行されたりする。

コメントする

コメントするには、ログインする必要があります。

コメント一覧

User icon mini apharmd(投稿日:2010/05/06 00:28, 履歴)
楽しんでくれたようでよかったです。
最終面はなるべく難しくしようと思いました。
他の人がこれを使ってくれる、もしくはヒントになると嬉しいですね。

pyokora3rdさんも頑張ってください。
User icon mini 退会したユーザー(投稿日:2010/05/04 17:57, 履歴)
きゃりーくえすと、楽しませて頂きました、有難うございます^^
(といっても最終面がまだ出来てませんが・・)

こういった皆さんの一つ一つの工夫が、今のRmakeにある
様々なゲームを支えているのだなあ、と改めて思いました。

色々と大変かとは思いますが、これからも制作頑張って下さい^^♪

かしこ