|
@@ -1,6 +1,10 @@
|
1
|
1
|
/*
|
2
|
2
|
* main.c
|
3
|
3
|
* Duality
|
|
4
|
+ *
|
|
5
|
+ * Based on the metasprites and galaxy examples from gbdk-2020:
|
|
6
|
+ * https://github.com/gbdk-2020/gbdk-2020/blob/develop/gbdk-lib/examples/cross-platform/metasprites/src/metasprites.c
|
|
7
|
+ * https://github.com/gbdk-2020/gbdk-2020/blob/develop/gbdk-lib/examples/gb/galaxy/galaxy.c
|
4
|
8
|
*/
|
5
|
9
|
|
6
|
10
|
#include <gbdk/platform.h>
|
|
@@ -110,8 +114,8 @@ void main(void) {
|
110
|
114
|
enable_interrupts();
|
111
|
115
|
|
112
|
116
|
// Set initial position to the center of the screen, zero out speed
|
113
|
|
- PosX = (DEVICE_SCREEN_PX_WIDTH / 2) << 4;
|
114
|
|
- PosY = (DEVICE_SCREEN_PX_HEIGHT / 2) << 4;
|
|
117
|
+ PosX = 0;//(DEVICE_SCREEN_PX_WIDTH / 2) << 4;
|
|
118
|
+ PosY = 0;//(DEVICE_SCREEN_PX_HEIGHT / 2) << 4;
|
115
|
119
|
SpdX = SpdY = 0;
|
116
|
120
|
|
117
|
121
|
idx = 0; rot = 0;
|
|
@@ -154,6 +158,8 @@ void main(void) {
|
154
|
158
|
|
155
|
159
|
PosX += SpdX, PosY += SpdY;
|
156
|
160
|
|
|
161
|
+ move_bkg(PosX >> 4, PosY >> 4);
|
|
162
|
+
|
157
|
163
|
uint8_t hiwater = SPR_NUM_START;
|
158
|
164
|
|
159
|
165
|
// NOTE: In a real game it would be better to only call the move_metasprite..()
|
|
@@ -169,32 +175,32 @@ void main(void) {
|
169
|
175
|
metasprites[idx].off,
|
170
|
176
|
idx,
|
171
|
177
|
hiwater,
|
172
|
|
- DEVICE_SPRITE_PX_OFFSET_X + (PosX >> 4),
|
173
|
|
- DEVICE_SPRITE_PX_OFFSET_Y + (PosY >> 4));
|
|
178
|
+ DEVICE_SPRITE_PX_OFFSET_X + (DEVICE_SCREEN_PX_WIDTH / 2),
|
|
179
|
+ DEVICE_SPRITE_PX_OFFSET_Y + (DEVICE_SCREEN_PX_HEIGHT / 2));
|
174
|
180
|
break;
|
175
|
181
|
case 2:
|
176
|
182
|
hiwater += move_metasprite_flipxy(metasprites[idx].ms[0],
|
177
|
183
|
metasprites[idx].off,
|
178
|
184
|
idx,
|
179
|
185
|
hiwater,
|
180
|
|
- DEVICE_SPRITE_PX_OFFSET_X + (PosX >> 4),
|
181
|
|
- DEVICE_SPRITE_PX_OFFSET_Y + (PosY >> 4));
|
|
186
|
+ DEVICE_SPRITE_PX_OFFSET_X + (DEVICE_SCREEN_PX_WIDTH / 2),
|
|
187
|
+ DEVICE_SPRITE_PX_OFFSET_Y + (DEVICE_SCREEN_PX_HEIGHT / 2));
|
182
|
188
|
break;
|
183
|
189
|
case 3:
|
184
|
190
|
hiwater += move_metasprite_flipx( metasprites[idx].ms[0],
|
185
|
191
|
metasprites[idx].off,
|
186
|
192
|
idx,
|
187
|
193
|
hiwater,
|
188
|
|
- DEVICE_SPRITE_PX_OFFSET_X + (PosX >> 4),
|
189
|
|
- DEVICE_SPRITE_PX_OFFSET_Y + (PosY >> 4));
|
|
194
|
+ DEVICE_SPRITE_PX_OFFSET_X + (DEVICE_SCREEN_PX_WIDTH / 2),
|
|
195
|
+ DEVICE_SPRITE_PX_OFFSET_Y + (DEVICE_SCREEN_PX_HEIGHT / 2));
|
190
|
196
|
break;
|
191
|
197
|
default:
|
192
|
198
|
hiwater += move_metasprite_ex( metasprites[idx].ms[0],
|
193
|
199
|
metasprites[idx].off,
|
194
|
200
|
idx,
|
195
|
201
|
hiwater,
|
196
|
|
- DEVICE_SPRITE_PX_OFFSET_X + (PosX >> 4),
|
197
|
|
- DEVICE_SPRITE_PX_OFFSET_Y + (PosY >> 4));
|
|
202
|
+ DEVICE_SPRITE_PX_OFFSET_X + (DEVICE_SCREEN_PX_WIDTH / 2),
|
|
203
|
+ DEVICE_SPRITE_PX_OFFSET_Y + (DEVICE_SCREEN_PX_HEIGHT / 2));
|
198
|
204
|
break;
|
199
|
205
|
}
|
200
|
206
|
|