質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

Q&A

解決済

1回答

835閲覧

同じことを繰り返す所で困ってます

Herowin

総合スコア9

Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

0グッド

0クリップ

投稿2018/06/22 14:20

編集2018/06/23 13:58

閲覧ありがとうございます。
ランダムな位置を目標地点として設定し、そこに向かって進んで
ターゲットに近づいたら、新しい目標地点を設定し、同じことを繰り返すって処理まで出来たのですが
そうではなく目的地に着いたら1秒止まって、またランダムな目標地点を設定し、同じことを繰り返す処理書きたいのですが
色々調べてチャレンジして上手くいかなくて困ってます。

追記、無事解決しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんな感じでどうでしょうか。

目的地に到着したら変数pause_timerに1秒をセットします。
そして次のフレーム以降updateの頭でpause_timerが0より大きかったらフレームの経過時間を差し引いてupdateを抜けます。pause_timerが0以下になったら次の目的地の設定をしてそこに向かって移動していきます。

csharp

1void update() 2{ 3 if(pause_timer>0.0f){ 4 pause_timer -= Time.deltaTime; 5 //待ち時間がまだ経過してないので何もしないで抜ける 6 return; 7 } 8 9  //目的地設定、移動処理 10 11 if( 目的地に到着 ){ 12 pause_timer = 1.0f; //1秒 13 } 14}

投稿2018/06/22 17:45

編集2018/06/22 17:54
tatamyiwathy

総合スコア1039

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Herowin

2018/06/23 03:52

返事ありがとうございます!! 無事出来たのですが、目的地がランダムだった為、1秒止まって動いたと思ったらまたすぐに止まってしまうパターンが結構見られました。 なので、目的地に着いたら1秒止まるじゃなくて、とりあえず10秒経ったら1秒止まるって処理書こうと思いまして、その場合は何処を修正すればよろしいのでしょうか?
capra314cabra

2018/06/23 07:29 編集

tatamyiwathyさんのコードに加筆すると pause_timer_2を作成し、 void update(){ if(pause_timer<1f){ pause_timer += Time.deltaTime; //待ち時間がまだ経過してないので何もしないで抜ける return; } else{ //目的地設定、移動処理 pause_timer_2 += Time.deltaTime; if( pause_timer_2 > 10f){ pause_timer = 0; pause_timer_2 = 0; } } と書けばよいと思います。
Herowin

2018/06/23 09:19

ありがとうございました! 何時間も悩んでて困ってたので本当に助かりました。 今後にも活かせるように勉強しときます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問