質問編集履歴

1

ソースコードの追加

2023/05/14 08:01

投稿

kinako0316
kinako0316

スコア1

test CHANGED
File without changes
test CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  ### 前提
5
5
  速度のゲージが突き抜けます。バックをしたら後ろに突き抜けます。どうしてこうなるか教えてください。
6
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-05-14/c8778543-b730-4a19-a5ed-e9efafd8fc96.png)![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-05-14/a5a6f9e5-d285-4538-bda3-7bb64c33d6f4.png)![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-05-14/ad801285-6891-405d-ac4e-ee665c786310.png)![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-05-14/e1f2da8a-302d-4c3b-911d-db66d76811a8.png)![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-05-14/15ade65d-1054-4f6b-a245-63ac9b9ae188.png)![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-05-14/654bd9dc-427a-4182-b486-25059973656f.png)![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-05-14/5a5e10ad-962a-4811-9042-f0a49455bc83.png)
6
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-05-14/5a5e10ad-962a-4811-9042-f0a49455bc83.png)
7
7
 
8
8
  ### 発生している問題・エラーメッセージ
9
9
 
@@ -15,11 +15,116 @@
15
15
 
16
16
  ```ここに言語名を入力
17
17
  ソースコード
18
+ //******************************************************************************
18
- ```
19
+ //
20
+ //
21
+ // scene_game
22
+ //
23
+ //
24
+ //******************************************************************************
19
25
 
26
+ //----< インクルード >-----------------------------------------------------------
27
+ #include "all.h"
28
+
29
+ //------< 定数 >----------------------------------------------------------------
30
+ #define SPEED_MAX 40.0f
31
+ #define SPEED_MIN -10.0f
32
+ //------< 変数 >----------------------------------------------------------------
33
+ int game_state = 0; // 状態
34
+ int game_timer = 0; // タイマー
35
+ // TODO:01 スプライトの用意
36
+ Sprite* sprCar, * sprCourse;
37
+ // TODO:03 位置用の変数を用意
38
+ float carPosX, carPosY;
39
+ //TODO:05 角度用の変数を用意
40
+ float angle;
41
+ // TODO:08 速度用の変数を用意
42
+ float speed;
43
+ // 初期設定
44
+ void game_init()
45
+ {
46
+ game_state = 0;
47
+ game_timer = 0;
48
+ }
49
+ // 更新処理
50
+ void game_update()
51
+ {
52
+ using namespace input;
53
+
54
+ switch (game_state)
55
+ {
56
+ case 0:
57
+ //////// 初期設定 ////////
58
+ sprCar = sprite_load(L"./Data/Images/up.png");
59
+ sprCourse = sprite_load(L"./Data/Images/course.png");
60
+ /*fallthrough*/
61
+ case 1:
62
+ //////// パラメータの設定 ////////
63
+ carPosX = 0;
64
+ carPosY =0;
65
+ angle = ToRadian(0);
66
+ speed = 0;
67
+ // ブレンドモードの設定
68
+ GameLib::setBlendMode(Blender::BS_ALPHA);
69
+
70
+ game_state++;
71
+ /*fallthrough*/
72
+ case 2:
73
+ //////// 通常時 ////////
74
+
75
+ debug::setString("[Operation]");
76
+ debug::setString("Rotate : A, D");
77
+ debug::setString("Accel : Up Arrow");
78
+ debug::setString("Brake : Down Arrow");
79
+ debug::setString("");
80
+ // TODO:06 A,Dキーで旋回
81
+ if (STATE(0) & PAD_LEFT) { angle += ToRadian(-3); }
82
+ if (STATE(0) & PAD_RIGHT) { angle += ToRadian(3); }
83
+ debug::setString("TODegree(angle):%f", ToDegree(angle));
84
+ // TODO:09 アクセル・ブレーキの実装
85
+ if (STATE(0) & PAD_TRG1) {
86
+ speed += 0.1f;
87
+ if (speed>SPEED_MAX) { speed = SPEED_MAX; }
88
+ }
89
+ else if (STATE(0) & PAD_TRG2) {
90
+ speed +=-0.2f;
91
+ if (speed<SPEED_MIN) { speed = SPEED_MIN; }
92
+
93
+ }
94
+ else { speed *= 0.99f; }
95
+ carPosX += sinf(angle) * speed;
96
+ carPosY += -cosf(angle) * speed;
97
+ debug::setString("speed%f", speed);
98
+
99
+ break;
100
+ }
101
+
102
+ game_timer++;
103
+ }
104
+ // 描画処理
105
+ void game_render()
106
+ {
107
+
108
+ GameLib::clear(0.2549f, 0.5569f, 0.1020f);
109
+ // TODO:10 コースの描画
110
+ sprite_render(sprCourse,
111
+ -carPosX, -carPosY, 2.0f, 2.0f, 0, 0, 3840, 1920, 1920, 960, ToRadian(0));
112
+ // TODO:11 車の描画
113
+ sprite_render(sprCar, SCREEN_W * 0.5f, SCREEN_H * 0.5f, 1.0f, 1.0f, 0, 0, 256, 256, 128, 128, angle);
114
+ debug::setString("carPosX:%f", carPosX);
115
+ debug::setString("carPosY:%f", carPosY);
116
+ // TODO:12 スピードゲージの描画
117
+ primitive::rect(70, 20, 800, 100, 0, 0, ToRadian(0), 0, 0, 0, 0.4f);
118
+ primitive::rect(72, 22, 796*speed , 96, 0, 0, ToRadian(0), 1, 0, 0, 0.6f);
119
+
120
+ // 終了処理
121
+ void game_deinit()
122
+ {
123
+ safe_delete(sprCar);
124
+ safe_delete(sprCourse);
125
+ }
20
126
  ### 試したこと
21
-
22
- ここ問題対して試しことを記載してください
127
+ SPEED_MAXをいれてみたが、逆突き抜けたままなった。
23
128
 
24
129
  ### 補足情報(FW/ツールのバージョンなど)
25
130