Bochum_Boy Posted August 21, 2018 Share Posted August 21, 2018 (edited) Dear all, currently I am teaching myself to program the Lynx. I am working on a Donkey Kong Clone with a bear and honey hives Yet, I face two problems: 1) Collision detection fails as it does not recognize the bear colliding with the hive 2) Animation of Hive and Bear running do not always move at all. I tried to solve it with an index that scrolls through an array of sprites. But I rarely see the animation. I fixed the latter problem on my own: The major problem remains, that the collision buffer remains empty. Hence, I see no collisions! Any ideas? I work with CC65 under Windows. #include <lynx.h> #include <tgi.h> #include <joystick.h> #include <6502.h> #include <stdlib.h> //Bear Sprite unsigned char bb_w1[] = { 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb0, 0x0, 0xbb, 0x55, 0xbb, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xb5, 0x5b, 0xbb, 0xbb, 0xbb, 0x55, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x5, 0x55, 0x5b, 0xb8, 0x88, 0x88, 0x88, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x88, 0x88, 0x88, 0xbb, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x8b, 0xb8, 0x88, 0x55, 0xaa, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x88, 0x85, 0x55, 0x55, 0x55, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xbb, 0xb8, 0x85, 0x55, 0x55, 0x55, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x88, 0x88, 0xbb, 0xb5, 0x55, 0x55, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x88, 0x88, 0x88, 0x8b, 0xbb, 0xbb, 0xb8, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x88, 0x8b, 0xbb, 0xbb, 0xbb, 0xbb, 0xc8, 0x80, 0x0, 0x0, 0x0, 0xd, 0xb, 0x88, 0xbb, 0xbb, 0xcc, 0xc8, 0x88, 0x88, 0x80, 0x0, 0x0, 0x0, 0xd, 0xc, 0x88, 0x88, 0xbb, 0xcc, 0xc8, 0x88, 0x88, 0x80, 0x0, 0x0, 0x0, 0xd, 0xcc, 0x88, 0x88, 0x88, 0xcc, 0xc8, 0x88, 0x88, 0x80, 0x0, 0x0, 0x0, 0xd, 0xcc, 0x88, 0x88, 0x11, 0x88, 0x88, 0x81, 0x11, 0x10, 0x0, 0x0, 0x0, 0xd, 0xcc, 0xbb, 0xbb, 0x11, 0x11, 0x11, 0x11, 0x1b, 0xb0, 0x0, 0x0, 0x0, 0xd, 0xb, 0xb8, 0x88, 0x55, 0x55, 0x55, 0x55, 0x5b, 0xb0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x1, 0x18, 0x88, 0x55, 0x55, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x1, 0x18, 0x88, 0x88, 0x88, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x11, 0x11, 0x10, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x11, 0x10, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x11, 0x11, 0x10, 0x0, 0x1, 0x11, 0x11, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x1, 0x11, 0x10, 0x0, 0x1, 0x11, 0x11, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x00 }; unsigned char bb_w0[] = { 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb0, 0x0, 0xbb, 0x55, 0xbb, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xb5, 0x5b, 0xbb, 0xbb, 0xbb, 0x55, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x5, 0x55, 0x5b, 0xb8, 0x88, 0x88, 0x88, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x88, 0x88, 0x88, 0xbb, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x8b, 0xb8, 0x88, 0x55, 0xaa, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x88, 0x85, 0x55, 0x55, 0x55, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xbb, 0xb8, 0x85, 0x55, 0x55, 0x55, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x88, 0x88, 0xbb, 0xb5, 0x55, 0x55, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x88, 0x88, 0x88, 0x8b, 0xbb, 0xbb, 0xb8, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x88, 0x8b, 0xbb, 0xbb, 0xbb, 0xbb, 0xc8, 0x80, 0x0, 0x0, 0x0, 0xd, 0xb, 0x88, 0xbb, 0xbc, 0xcc, 0xc8, 0x88, 0x88, 0x80, 0x0, 0x0, 0x0, 0xd, 0xb, 0x88, 0x8c, 0xcc, 0xcc, 0xcc, 0x88, 0x88, 0x80, 0x0, 0x0, 0x0, 0xd, 0xb1, 0x11, 0x88, 0xcc, 0xcc, 0xcc, 0x88, 0x88, 0x80, 0x0, 0x0, 0x0, 0xd, 0xbb, 0x81, 0x11, 0x1c, 0xcc, 0xc8, 0x81, 0x11, 0x10, 0x0, 0x0, 0x0, 0xd, 0xbb, 0xbb, 0xbb, 0x11, 0x11, 0x11, 0x11, 0x1b, 0xb0, 0x0, 0x0, 0x0, 0xd, 0xb, 0xb8, 0x88, 0x55, 0x55, 0x55, 0x55, 0x5b, 0xb0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x1, 0x18, 0x88, 0x55, 0x55, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x1, 0x18, 0x88, 0x88, 0x88, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x11, 0x11, 0x11, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x1, 0x11, 0x11, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x1, 0x11, 0x10, 0x11, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x11, 0x10, 0x11, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x00 }; unsigned char bb_t0[] = { 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb0, 0x0, 0xbb, 0x55, 0xbb, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xb5, 0x5b, 0xbb, 0xbb, 0xbb, 0x55, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x5, 0x55, 0x5b, 0xb8, 0x88, 0x88, 0x88, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x88, 0x88, 0x88, 0xbb, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x8b, 0xb8, 0x88, 0x55, 0xaa, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x88, 0x85, 0x55, 0x55, 0x55, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xbb, 0xb8, 0x85, 0x55, 0x55, 0x55, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x88, 0x88, 0xbb, 0xb5, 0x55, 0x55, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x88, 0x88, 0xbb, 0xbb, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x88, 0x8b, 0xbb, 0xbb, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0x88, 0xbb, 0xbb, 0xb8, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0x88, 0x88, 0xbb, 0x88, 0xcc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0x88, 0xcc, 0xc8, 0x8c, 0xcb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xbc, 0xcc, 0xc8, 0xcc, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xbc, 0xcc, 0xcc, 0xcb, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x5, 0x55, 0x55, 0xcb, 0xbb, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x88, 0x85, 0x55, 0x55, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x88, 0x88, 0x88, 0x88, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x11, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x11, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x11, 0x11, 0x0, 0x1, 0x11, 0x11, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x11, 0x11, 0x0, 0x1, 0x11, 0x11, 0x0, 0x0, 0x0, 0x0, 0x00 }; unsigned char bb_t1[] = { 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb0, 0x0, 0xbb, 0x55, 0xbb, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xb5, 0x5b, 0xbb, 0xbb, 0xbb, 0x55, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x5, 0x55, 0x5b, 0xb8, 0x88, 0x88, 0x88, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x88, 0x88, 0x88, 0xbb, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x8b, 0xb8, 0x88, 0x55, 0xaa, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x88, 0x85, 0x55, 0x55, 0x55, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xbb, 0xb8, 0x85, 0x55, 0x55, 0x55, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xbb, 0xbb, 0xbb, 0xb5, 0x55, 0x55, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xbb, 0x88, 0x8b, 0xbb, 0xb8, 0x80, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xcb, 0x88, 0x88, 0xbb, 0xb8, 0x80, 0x88, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xcc, 0xb8, 0x88, 0x88, 0xb8, 0x88, 0x88, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xbc, 0xcb, 0x88, 0x88, 0xc8, 0x88, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xbb, 0xcc, 0xbc, 0xcc, 0xcb, 0xbb, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xbb, 0xbc, 0xcc, 0xcc, 0xcb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x5, 0x55, 0x55, 0xbc, 0xcc, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x88, 0x85, 0x55, 0x55, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x88, 0x88, 0x88, 0x88, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x11, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x11, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x11, 0x11, 0x0, 0x1, 0x11, 0x11, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x11, 0x11, 0x0, 0x1, 0x11, 0x11, 0x0, 0x0, 0x0, 0x0, 0x00 }; unsigned char crystalBall[] = { 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x30, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf3, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf3, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x30, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x00 }; unsigned char bb_j0[] = { 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb0, 0x0, 0xbb, 0x55, 0xbb, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xb5, 0x5b, 0xbb, 0xbb, 0xbb, 0x55, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x5, 0x55, 0x5b, 0xb8, 0x88, 0x88, 0x88, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x88, 0x88, 0x88, 0xbb, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x8b, 0xb8, 0x88, 0x55, 0xaa, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x88, 0x85, 0x55, 0x55, 0x55, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xbb, 0xb8, 0x85, 0x55, 0x55, 0x55, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xbb, 0xbb, 0xbb, 0xb5, 0x55, 0x55, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xbb, 0x88, 0xbb, 0xbb, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xbb, 0x88, 0xbb, 0xbb, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xbb, 0x88, 0xbb, 0xbb, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xb8, 0x88, 0x8b, 0xb8, 0x88, 0x80, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xb8, 0x88, 0x8c, 0xc8, 0x88, 0x80, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xbb, 0xbb, 0xcc, 0xcc, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xbb, 0xbb, 0xcc, 0xcc, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x5, 0x55, 0x55, 0xbb, 0xbb, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x88, 0x85, 0x55, 0x55, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x88, 0x88, 0x88, 0x88, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x11, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x11, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x11, 0x10, 0x0, 0x1, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x1, 0x11, 0x0, 0x0, 0x11, 0x10, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x00 }; unsigned char bb_j1[] = { 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb0, 0x0, 0xbb, 0x55, 0xbb, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xb5, 0x5b, 0xbb, 0xbb, 0xbb, 0x55, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x5, 0x55, 0x5b, 0xb8, 0x88, 0x88, 0x88, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x88, 0x88, 0x88, 0xbb, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x8b, 0xb8, 0x88, 0x55, 0xaa, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xb8, 0x88, 0x85, 0x55, 0x55, 0x55, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0xbb, 0xb8, 0x85, 0x55, 0x55, 0x55, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xbb, 0xbb, 0xbb, 0xb5, 0x55, 0x55, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb8, 0x8b, 0xbb, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xb8, 0x8b, 0xbb, 0xb8, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xbb, 0x88, 0xbb, 0xbb, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xb8, 0x88, 0x8b, 0xb8, 0x88, 0x80, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xb8, 0x88, 0x8c, 0xc8, 0x88, 0x80, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xbb, 0xbb, 0xcc, 0xcc, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb, 0xbb, 0xbb, 0xcc, 0xcc, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x5, 0x55, 0x55, 0xbb, 0xbb, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x88, 0x85, 0x55, 0x55, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x88, 0x88, 0x88, 0x88, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x11, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x11, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x11, 0x11, 0x0, 0x1, 0x11, 0x10, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x1, 0x11, 0x0, 0x0, 0x11, 0x10, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x00 }; //Sprite of Hive unsigned char hive_0[] = { 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x8f, 0x0, 0x0, 0x0, 0xf8, 0x80, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x88, 0x8f, 0x0, 0xf, 0x88, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0xf0, 0x8, 0x80, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80, 0x8, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0xb, 0xb8, 0x88, 0x88, 0x8b, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x88, 0x88, 0x88, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xb5, 0x55, 0x55, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xb5, 0x55, 0x55, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0x55, 0x5b, 0xbb, 0xbb, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x00 }; unsigned char hive_1[] = { 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x8, 0xf0, 0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x8f, 0x40, 0x0, 0x4, 0x48, 0x80, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x88, 0x8f, 0x0, 0x4, 0x88, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x4, 0x88, 0xf0, 0x8, 0x84, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80, 0x8, 0x40, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0xb, 0xb8, 0x88, 0x88, 0x8b, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x88, 0x88, 0x88, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xb5, 0x55, 0x55, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xb5, 0x55, 0x55, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0x55, 0x5b, 0xbb, 0xbb, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x00 }; unsigned char hive_2[] = { 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x0, 0x0, 0x0, 0x88, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x80, 0x0, 0x8, 0x80, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x0, 0x88, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0xb, 0xb8, 0x88, 0x88, 0x8b, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x88, 0x88, 0x88, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xb5, 0x55, 0x55, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xb5, 0x55, 0x55, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0x55, 0x5b, 0xbb, 0xbb, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x00 }; //Arrays of sprites char* bb_spritedata[] = { bb_w0, bb_w1, bb_t0, bb_t1, bb_j0, bb_j1 }; char* hive_spritedata[] = { hive_0,hive_1,hive_2 }; //Struct of Bear typedef struct { char collindex; SCB_REHVST_PAL sprite; unsigned char run_index; unsigned char lives; signed char crystals; unsigned char jump_index; } sprite_t; //Struct of Crystal typedef struct { char collindex; SCB_REHVST_PAL sprite; signed char hvel; signed char vvel; } ballsprite_t; //Struct of Hive typedef struct { char collindex; SCB_REHVST_PAL sprite; signed char points; } hivesprite_t; //Spritepacks sprite_t BBear = { 0, { BPP_4 | TYPE_NORMAL,REHVST | LITERAL, 1, 0, bb_w0, 5, 75, 0x100, 0x100, 0x000, 0x000, {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef} },0,4,10,0 }; ballsprite_t CCrystal = { 0, { BPP_4 | TYPE_NORMAL,REHVST | LITERAL, 2, 0, crystalBall, 5, 75, 0x100, 0x100, 0x000, 0x000, {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef} },5,2, }; hivesprite_t Hive = { 0, { BPP_4 | TYPE_NORMAL,REHVST | LITERAL, 3, 0, hive_0, 100, 75, 0x100, 0x100, 0x000, 0x000, {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef} },50 }; void main() { //Init unsigned char joy,jump_released,ticks; unsigned char wait_buttonrelease = 1; signed char Run_Index = -1; signed char Hive_Index = -1; char buffer[16]; joy_install(&lynx_stdjoy); tgi_install(&lynx_160_102_16); tgi_init(); tgi_setcollisiondetection(1); CLI(); while (1){ while (tgi_busy()); tgi_clear(); tgi_setcolor(COLOR_GREEN); tgi_outtextxy(0, 0, "WIP"); joy = joy_read(JOY_1); //Movements if (JOY_BTN_RIGHT(joy)) { Run_Index++; if (Run_Index > 1) { Run_Index = -1;} BBear.sprite.hpos += 1; BBear.sprite.data = bb_spritedata[Run_Index]; } if (JOY_BTN_LEFT(joy)) { Run_Index++; if (Run_Index > 1) { Run_Index = 0;} BBear.sprite.hpos -= 1; BBear.sprite.data = bb_spritedata[Run_Index]; } //Animate Hive if(Hive_Index>-2){ if(Hive_Index <= 2) { Hive_Index++; Hive.sprite.data = hive_spritedata[Hive_Index]; } } //Jumping if (JOY_BTN_UP(joy)) { if (BBear.jump_index<10){ ticks = 2; jump_released = 1; BBear.sprite.vpos -= 5; BBear.sprite.data = bb_spritedata[4]; BBear.jump_index++;} } //Finish animation in case that a jump was initiated if (jump_released == 1) { ticks--; if(ticks >= 0){BBear.sprite.data = bb_spritedata[4+ticks];} if(ticks==0){ jump_released = 0; BBear.sprite.data = bb_spritedata[0]; } } // if (BBear.sprite.hpos > 160) { BBear.sprite.sprctl0 = BPP_4 | TYPE_NORMAL | HFLIP; CCrystal.sprite.sprctl0 = BPP_4 | TYPE_NORMAL | HFLIP; CCrystal.hvel = -1 * CCrystal.hvel; itoa(CCrystal.hvel, &buffer[0],10); tgi_outtextxy(0, 10, buffer); BBear.sprite.hpos = 160; } if (BBear.sprite.hpos <= 0) { BBear.sprite.sprctl0 = BPP_4 | TYPE_NORMAL | LITERAL; CCrystal.sprite.sprctl0 = BPP_4 | TYPE_NORMAL | LITERAL; BBear.sprite.hpos = 0; } //Fire the Crystal if (JOY_BTN_FIRE(joy)) { BBear.crystals--; if(BBear.crystals > 1){ BBear.sprite.data = bb_spritedata[3]; CCrystal.sprite.hpos = BBear.sprite.hpos; CCrystal.sprite.vpos = BBear.sprite.vpos; } if(BBear.crystals < 1) { BBear.crystals = 0; } } CCrystal.sprite.hpos += CCrystal.hvel; CCrystal.sprite.vpos += CCrystal.vvel; //Draw collidable sprites tgi_sprite(&CCrystal.sprite); tgi_sprite(&BBear.sprite); tgi_sprite(&Hive.sprite); //Collision switch (BBear.collindex) { case 0: break; case 1: break; case 2: break; case 3: tgi_outtextxy(50, 50, "Found"); break; default: break; } //Debugging text itoa(BBear.collindex, &buffer[0],10); tgi_outtextxy(20, 50, buffer); itoa(Run_Index, &buffer[0],10); tgi_outtextxy(0, 10, buffer); itoa(BBear.crystals, &buffer[0],10); tgi_outtextxy(30, 10, buffer); tgi_updatedisplay(); ; } } Edited August 21, 2018 by Bochum_Boy Quote Link to comment Share on other sites More sharing options...
42bs Posted August 21, 2018 Share Posted August 21, 2018 (edited) Hi I do not see : - setup of collision buffer - setup of collision offset (shoud be -1) Edit: You do not set a collision identification (3rd byte of the SCB). It is 0 for all sprites. Edited August 21, 2018 by 42bs Quote Link to comment Share on other sites More sharing options...
Bochum_Boy Posted August 22, 2018 Author Share Posted August 22, 2018 (edited) Hi 42bs, I think I set those things up. I changed it to be more close to LX.Net's tutorial. byte depository --> char depository (due to Windows) Collision identifications are 0x02,0x01,0x08, --> all in repository 0x0 //Struct of Bear typedef struct { char depository; SCB_REHVST_PAL sprite; unsigned char run_index; unsigned char lives; signed int crystals; unsigned char jump_index; } sprite_t; //Struct of Crystal typedef struct { char depository; SCB_REHVST_PAL sprite; signed char hvel; signed char vvel; } ballsprite_t; //Struct of Hive typedef struct { char depository; SCB_REHVST_PAL sprite; signed char points; } hivesprite_t; //Spritepacks sprite_t BBear = { 0x0, { BPP_4 | TYPE_NORMAL,REHVST | LITERAL, 0x02, 0, bb_w0, 5, 75, 0x100, 0x100, 0x000, 0x000, {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef} },0,4,10000,0 }; ballsprite_t CCrystal = { 0x0, { BPP_4 | TYPE_NORMAL,REHVST | LITERAL, 0x01, 0, crystalBall, 5, 75, 0x100, 0x100, 0x000, 0x000, {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef} },5,2, }; hivesprite_t Hive = { 0x0, { BPP_4 | TYPE_NORMAL,REHVST | LITERAL, 0x08, 0, hive_0, 100, 75, 0x100, 0x100, 0x000, 0x000, {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef} },50 }; Yet, I don't get this working... Might this be windows related? Oh my god, I just got it working - Ich checked the wrong repository Edited August 22, 2018 by Bochum_Boy Quote Link to comment Share on other sites More sharing options...
42bs Posted August 22, 2018 Share Posted August 22, 2018 (edited) No, you do _not_ setup SPRCOL in the SCB: hivesprite_t Hive = { 0x0, { BPP_4 | TYPE_NORMAL,REHVST | LITERAL, 0x08, 0 , hive_0, 100, 75, 0x100, 0x100, 0x000, 0x000, {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef} },50 Edit: Sorry, did not see the comma after "TYPE_NORMAL". Check out : http://www.monlynx.de/lynx/lynx6.html#_63and see if every thing is correct. Also a good debugging feature is to display the collison buffer. If it is all black, no collision checking has been done. Again, _check_ if collision offset is -1! Edited August 22, 2018 by 42bs Quote Link to comment Share on other sites More sharing options...
Bochum_Boy Posted August 24, 2018 Author Share Posted August 24, 2018 Thanks 42bs for your answers. I made my program running! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.