質問編集履歴
2
少しソースコードを追加。
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,35 +18,7 @@
|
|
18
18
|
|
19
19
|
```C++
|
20
20
|
|
21
|
-
#include "DxLib.h"
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
#define SCREEN_WIDTH (320) //画面の横幅
|
26
|
-
|
27
|
-
#define SCREEN_HEIGHT (240) //画面の縦幅
|
28
|
-
|
29
|
-
#define STAGE_WIDTH (400)
|
30
|
-
|
31
|
-
#define STAGE_HEIGHT (320)
|
32
|
-
|
33
|
-
#define CHIP_SIZE (16) //チップのサイズ
|
34
|
-
|
35
|
-
#define CHAR_SIZE (14) //キャラのサイズ
|
36
|
-
|
37
|
-
#define MAP_WIDTH (STAGE_WIDTH/CHIP_SIZE)
|
38
|
-
|
39
|
-
#define MAP_HEIGHT (STAGE_HEIGHT/CHIP_SIZE)
|
40
|
-
|
41
|
-
HANDLE Stdout;
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
//テスト用のマップデータ。実際の開発では、Tiled(フリーのマップエディタ)を使う予定。
|
46
|
-
|
47
|
-
//このテストプログラムがある程度の段階に達したら、本格的な開発に移ります。
|
48
|
-
|
49
|
-
//
|
21
|
+
//マップデータ
|
50
22
|
|
51
23
|
char MapData[MAP_HEIGHT][MAP_WIDTH]
|
52
24
|
|
@@ -100,47 +72,7 @@
|
|
100
72
|
|
101
73
|
};
|
102
74
|
|
103
|
-
|
104
|
-
|
105
|
-
float PlayerX, PlayerY;
|
106
|
-
|
107
|
-
float SaveX, SaveY;
|
108
|
-
|
109
|
-
float MoveX, MoveY;
|
110
|
-
|
111
|
-
float VectX;
|
112
|
-
|
113
|
-
float DropPower, Grav;
|
114
|
-
|
115
|
-
float MaxVect;
|
116
|
-
|
117
|
-
char JumpFlag, Dir, AirFlag, NonVertJump, dir, DirT, DashB, SlideFlag, MaxJump;
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
int DashCnt, JumpTimer, SlideTimer, JumpCount;
|
122
|
-
|
123
|
-
int Input, EdgeInput, Pad;
|
124
|
-
|
125
|
-
|
75
|
+
//宣言の部分は省略。
|
126
|
-
|
127
|
-
int CameraX, CameraY;
|
128
|
-
|
129
|
-
float CharX, CharY, ViewCharX, ViewCharY;
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
int main();
|
134
|
-
|
135
|
-
int MapHitCheck(float X, float Y, float *MoveX, float *MoveY, int Size);
|
136
|
-
|
137
|
-
int CharMove(float *X, float *Y, float MoveX, float MoveY, float *Drop, float *G,
|
138
|
-
|
139
|
-
char *Jump, char *Air, char *Vert,int *JumpT,float *Vect, int Size,char *Slide,int *JCount);
|
140
|
-
|
141
|
-
int MapChipParam(float X, float Y);
|
142
|
-
|
143
|
-
int CameraCheck(float X, float Y);
|
144
76
|
|
145
77
|
//マップチップのデータ獲得
|
146
78
|
|
@@ -458,6 +390,44 @@
|
|
458
390
|
|
459
391
|
```
|
460
392
|
|
393
|
+
move.cpp
|
394
|
+
|
395
|
+
```C++
|
396
|
+
|
397
|
+
int main(void) {
|
398
|
+
|
399
|
+
//移動アルゴリズムなどは省略。
|
400
|
+
|
401
|
+
//マップの描画
|
402
|
+
|
403
|
+
{
|
404
|
+
|
405
|
+
int i, j;
|
406
|
+
|
407
|
+
for (i = 0; i < MAP_HEIGHT; i++) {
|
408
|
+
|
409
|
+
for (j = 0; j < MAP_WIDTH; j++) {
|
410
|
+
|
411
|
+
if (MapData[i][j] == 1) {
|
412
|
+
|
413
|
+
DrawBox(j*CHIP_SIZE - CameraX, i*CHIP_SIZE - CameraY, j*CHIP_SIZE + CHIP_SIZE - CameraX, i*CHIP_SIZE + CHIP_SIZE - CameraY, GetColor(255, 255, 255), TRUE);
|
414
|
+
|
415
|
+
}
|
416
|
+
|
417
|
+
}
|
418
|
+
|
419
|
+
}
|
420
|
+
|
421
|
+
}
|
422
|
+
|
423
|
+
//キャラの描画
|
424
|
+
|
425
|
+
DrawBox((int)(ViewCharX)-(CHAR_SIZE / 2), (int)(ViewCharY)-(CHAR_SIZE / 2), (int)(ViewCharX + CHAR_SIZE) - (CHAR_SIZE / 2), (int)(ViewCharY + CHAR_SIZE) - (CHAR_SIZE / 2), GetColor(255, 0, 0), TRUE);
|
426
|
+
|
427
|
+
}
|
428
|
+
|
429
|
+
```
|
430
|
+
|
461
431
|
###試したこと
|
462
432
|
|
463
433
|
画面サイズを2のべき乗にして見たけど、だめでした。
|
1
初心者アイコンを付けた。
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|