summaryrefslogtreecommitdiff
path: root/source/main.c
diff options
context:
space:
mode:
authorSimponic <loganthebean222@gmail.com>2020-08-11 22:13:56 -0600
committerSimponic <loganthebean222@gmail.com>2020-08-11 22:13:56 -0600
commit723f879f85f25c2d466146e08261e0ae993c72b6 (patch)
tree185f367c712554f92c14b0074503ff0667e098c3 /source/main.c
parente84e232f8d003f3cf3340517d8bf6b65ba430143 (diff)
downloadgeometry-dash-gba-723f879f85f25c2d466146e08261e0ae993c72b6.tar.gz
geometry-dash-gba-723f879f85f25c2d466146e08261e0ae993c72b6.zip
Added basic camera controls
Diffstat (limited to 'source/main.c')
-rw-r--r--source/main.c44
1 files changed, 30 insertions, 14 deletions
diff --git a/source/main.c b/source/main.c
index eca5ea2..589db1a 100644
--- a/source/main.c
+++ b/source/main.c
@@ -8,23 +8,27 @@
#include "../include/velocity.h"
#include "../include/playerObject.h"
#include "../include/map.h"
+#include "../include/camera.h"
#include "../sprites/player.h"
#include "../sprites/block.h"
+#include "../sprites/spike.h"
OBJ_ATTR obj_buffer[128];
OBJ_AFFINE *obj_aff_buffer= (OBJ_AFFINE*)obj_buffer; // Object affine-buffer
int main() {
+ memcpy(pal_obj_mem, blockPal, blockPalLen);
memcpy(&tile_mem[4][0], playerTiles, playerTilesLen);
- memcpy(pal_obj_mem, playerPal, playerPalLen);
memcpy(&tile_mem[4][4], blockTiles, blockTilesLen);
+ memcpy(&tile_mem[4][8], spikeTiles, spikeTilesLen);
oam_init(obj_buffer, 128);
REG_DISPCNT= DCNT_OBJ | DCNT_OBJ_1D;
playerObject player = createPlayerObject(&obj_buffer[0], &obj_aff_buffer[0],0, 0);
+ player.camera = createCamera(10, 0);
while(1) {
vid_vsync();
@@ -34,22 +38,34 @@ int main() {
player.vel.dy -= 9 << FIX_SHIFT;
}
-
- updatePlayer(&player, 120);
+ updatePlayer(&player, 80);
obj_affine_copy(obj_aff_mem, player.affine, 1);
obj_copy(obj_mem, player.obj, 1);
- OBJ_ATTR tileObject;
- for (int i = 0; i < 7; i++) {
- for (int j = 0; j < 12; j++){
- obj_set_attr(&tileObject,
- ATTR0_SQUARE,
- ATTR1_SIZE_16,
- ATTR2_PALBANK(0) | 4
- );
- obj_set_pos(&tileObject, (j * 16), (i * 16));
- if (map1[i][j]) {
- obj_copy(obj_mem + (17 * i + j) + 1, &tileObject, 1);
+ OBJ_ATTR blockObject, spikeObject;
+ obj_set_attr(&blockObject,
+ ATTR0_SQUARE,
+ ATTR1_SIZE_16,
+ ATTR2_PALBANK(0) | 4
+ );
+ obj_set_attr(&spikeObject,
+ ATTR0_SQUARE,
+ ATTR1_SIZE_16,
+ ATTR2_PALBANK(0) | 8
+ );
+ int x, y;
+ for (int i = 0; i < 9; i++) {
+ for (int j = 0; j < 15; j++){
+ x = (j * 16);
+ y = (i * 16);
+ applyCameraShift(&player.camera, &x, &y);
+ if (map1[i][j] == 1) {
+ obj_set_pos(&blockObject, x, y);
+ obj_copy(obj_mem + (17 * i + j) + 1, &blockObject, 1);
+ }
+ else if (map1[i][j] == 2) {
+ obj_set_pos(&spikeObject, x, y);
+ obj_copy(obj_mem + (17 * i + j) + 1, &spikeObject, 1);
}
}
}