2016-04-29 4 views
0
cantSee = collision_line(x,y,obj_player.x,obj_player.y,obj_corner,false,true) 
canSee = !(collision_line(x,y,obj_player.x,obj_player.y,obj_corner,false,true)) 

内のスクリプトは、次のようにループを定義する方法:ループにゲーム会社

if cantSee { 
     cantSeeTimer = cantSeeTimer +1 
    } 

    if cantSeeTimer >60 { 
     speed=0 
     stopped=true 
    } else { 
     mp_potential_step(obj_player.x,obj_player.y,5,false) 
    } 

} 

if stopped=true && canSee { 
    mp_potential_step(obj_player.x,obj_player.y,5,false) 
    loop() 
} 

私は言語は悪いですけど、私はただの意志で召喚するループコマンドを作成したいです。

ありがとう、Finn。

答えて

1

あなたは現在ゲーム内のどのオブジェクトにこのコードがあるのか​​を指定していませんが、あまり重要ではありません。

ゲームメーカーまたはゲームメーカースタジオでは、オブジェクトには一連のイベントがあり、そのうちの1つは「ステップ」イベントと呼ばれます。ステップイベントは、基本的に、部屋の速度が1秒あたりの回数を循環させるループです。例:部屋の室内速度が30の場合、ステップイベントは1秒間に30回ループします。

私はあなたが何をしようとしているのか分かり、解決策があると思います。 GMLコードを書くことができるので、GMSまたはGM IDEの使い方を理解していると仮定します。

  1. 我々はobj_controlと呼ばれる新しいオブジェクトを作成したい(またはカスタム名を選択することができます)。また、このオブジェクトにスプライトを与えてはいけません。プレーヤーに見せたくないからです。

  2. ここで、新しいオブジェクトにイベントを追加したいので、まだobj_control(またはそれを開いたというもの)のウィンドウがあることを確認してください。この画像に表示されている「イベントを追加」ボタンをクリックしてください:http://imgur.com/A7szwFO

  3. クリックしたら、「ステップ」をクリックしてください。 http://imgur.com/s0ksiyD

  4. 「ステップ」をもう一度選択します。 ( 'Begin Step'と 'End Step'は私たちがしたいことをしないので無視しましょう)
  5. 今作成したばかりのステップイベントにコードを追加する必要があります。だから、あなたが 'Control'タブにいることを確認し、スクリプトエディタを見つけて(それを見つける場所を知っておくべきです)、ステップイベントの 'Actions'にドラッグします。 http://imgur.com/de3gE01
  6. スクリプトエディタが自動的にポップアップするはずですが、「コードを実行する」をダブルクリックしない場合は、これですべてのコードをコピーしてスクリプトエディタに貼り付けるだけで済みます。 http://imgur.com/sNBOCFu
  7. ここで、ウィンドウの左上隅にある緑色のチェックマークをクリックしてコードを保存します。
  8. これまでは、createイベントで変数を定義していることを確認しています。だから、作成イベントを作成し、このコードを追加します。あなたはそれがイベントを作成して追加し、オブジェクトに対するすべての変更を保存し、それにそのコードを挿入した後

    cantSee = collision_line(x,y,obj_player.x,obj_player.y,obj_corner,false,true)

    canSee = !(collision_line(x,y,obj_player.x,obj_player.y,obj_corner,false,true))

  9. を。

  10. 残っているのは、作成したこのオブジェクトをゲームのすべての部屋に追加して機能させることです。

がうまくいけば、これは助け、それはちょうど私に知らせていなかったと我々が得ることができるかどうかはソートされました。