Browse Source

keep player in center of screen and scroll background instead

Thomas B 2 months ago
parent
commit
29e43b6889
1 changed files with 16 additions and 10 deletions
  1. 16
    10
      src/main.c

+ 16
- 10
src/main.c View File

1
 /*
1
 /*
2
  * main.c
2
  * main.c
3
  * Duality
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
 #include <gbdk/platform.h>
10
 #include <gbdk/platform.h>
110
     enable_interrupts();
114
     enable_interrupts();
111
 
115
 
112
     // Set initial position to the center of the screen, zero out speed
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
     SpdX = SpdY = 0;
119
     SpdX = SpdY = 0;
116
 
120
 
117
     idx = 0; rot = 0;
121
     idx = 0; rot = 0;
154
 
158
 
155
         PosX += SpdX, PosY += SpdY;
159
         PosX += SpdX, PosY += SpdY;
156
 
160
 
161
+        move_bkg(PosX >> 4, PosY >> 4);
162
+
157
         uint8_t hiwater = SPR_NUM_START;
163
         uint8_t hiwater = SPR_NUM_START;
158
 
164
 
159
         // NOTE: In a real game it would be better to only call the move_metasprite..()
165
         // NOTE: In a real game it would be better to only call the move_metasprite..()
169
                                                   metasprites[idx].off,
175
                                                   metasprites[idx].off,
170
                                                   idx,
176
                                                   idx,
171
                                                   hiwater,
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
                 break;
180
                 break;
175
             case 2:
181
             case 2:
176
                 hiwater += move_metasprite_flipxy(metasprites[idx].ms[0],
182
                 hiwater += move_metasprite_flipxy(metasprites[idx].ms[0],
177
                                                   metasprites[idx].off,
183
                                                   metasprites[idx].off,
178
                                                   idx,
184
                                                   idx,
179
                                                   hiwater,
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
                 break;
188
                 break;
183
             case 3:
189
             case 3:
184
                 hiwater += move_metasprite_flipx( metasprites[idx].ms[0],
190
                 hiwater += move_metasprite_flipx( metasprites[idx].ms[0],
185
                                                   metasprites[idx].off,
191
                                                   metasprites[idx].off,
186
                                                   idx,
192
                                                   idx,
187
                                                   hiwater,
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
                 break;
196
                 break;
191
             default:
197
             default:
192
                 hiwater += move_metasprite_ex(    metasprites[idx].ms[0],
198
                 hiwater += move_metasprite_ex(    metasprites[idx].ms[0],
193
                                                   metasprites[idx].off,
199
                                                   metasprites[idx].off,
194
                                                   idx,
200
                                                   idx,
195
                                                   hiwater,
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
                 break;
204
                 break;
199
         }
205
         }
200
 
206
 

Loading…
Cancel
Save