teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

update, OnButtonClickの内容を書き加えました

2018/11/20 13:27

投稿

tsubozaemon
tsubozaemon

スコア11

title CHANGED
File without changes
body CHANGED
@@ -49,6 +49,21 @@
49
49
  ClickWindow();//画面クリック時の処理
50
50
  }
51
51
  // 以降、毎フレームごとの描画処理など
52
+ //(例)攻撃演出中
53
+ if (gameState == GAME_STATE_ATTACK) {
54
+
55
+ if (ensyutsuCounter <= 15) {
56
+ printDamage();//ダメージ量を表示
57
+ }
58
+ if (ensyutsuCounter == 10) {
59
+ targetHp -= damage;//ターゲットのHPを今回のダメージ分だけ減らす
60
+ }
61
+ ensyutsuCounter--;
62
+ if (ensyutsuCounter == 0) {
63
+ // 攻撃演出状態終了。初期状態に戻る
64
+ gameState == GAME_STATE_FIRST;
65
+ }
66
+ }
52
67
  }
53
68
 
54
69
  // 一定周期ごとにupdateの実質処理が行われるようにチェック
@@ -70,8 +85,11 @@
70
85
  return;
71
86
  }
72
87
  //ボタン押したときの処理(例)
88
+ if (gameState == GAME_STATE_ATTACKCHECK) {//攻撃決定するかの確認状態
73
- gameState = GAME_STATE_FIELDVIEW
89
+ gameState = GAME_STATE_ATTACK;//攻撃の演出に入る
90
+ ensyutsuCounter = 20;//20フレーム間、攻撃演出
74
- cantSyoriCounter = 30;//連打で一気に進む防止のため
91
+ cantSyoriCounter = 30;//連打で一気に進む防止のため
92
+ }
75
93
  }
76
94
  ```
77
95
 

2

変数の説明追加

2018/11/20 13:26

投稿

tsubozaemon
tsubozaemon

スコア11

title CHANGED
File without changes
body CHANGED
@@ -39,10 +39,10 @@
39
39
  // 今回「IsPassedInterval == false」になってUpdateを抜ける場合でも
40
40
  // 「処理のインターバル中に画面はクリックした」という事実は保管しておかないと
41
41
  // クリックが無かったことにされる可能性がある
42
- isGamenClick = true;//isGamenClickはグローバル変数
42
+ isGamenClick = true;//isGamenClickはグローバル静的変数
43
43
  }
44
44
  if (!IsPassedInterval()) return;
45
- if (cantSyoriCounter > 0) cantSyoriCounter--;
45
+ if (cantSyoriCounter > 0) cantSyoriCounter--;//cantSyoriCounterはグローバル静的変数
46
46
  if (isGamenClick)//当初はif(Input.GetMouseButtonDown(0))
47
47
  {
48
48
  isGamenClick = false;//こうしないと次回Update時もコールされてしまう
@@ -54,7 +54,7 @@
54
54
  // 一定周期ごとにupdateの実質処理が行われるようにチェック
55
55
  public static Boolean IsPassedInterval()
56
56
  {
57
- tempInterval += Time.deltaTime;
57
+ tempInterval += Time.deltaTime;//tempIntervalはグローバル静的変数
58
58
  if (tempInterval > UPDATE_INTERVAL)
59
59
  {
60
60
  tempInterval = 0;

1

誤記修正

2018/11/19 22:05

投稿

tsubozaemon
tsubozaemon

スコア11

title CHANGED
File without changes
body CHANGED
@@ -76,7 +76,7 @@
76
76
  ```
77
77
 
78
78
  ### 試したこと
79
- まずは、記のソースでの「IsPassedInterval」処理を追加しました。
79
+ まずは、記のソースでの「IsPassedInterval」処理を追加しました。
80
80
  が、それだけだと、「スキップされるupdate()」で拾った画面クリックが
81
81
  いざ「スキップしないupdate()」が来た時に、無視されてしまうことに気づきました。
82
82
  よってisGamenClickフラグを追加しました。