Beispielprogramme in C/Joystick Abfrage
Aus C64-Wiki
Zur Navigation springenZur Suche springenC-Version des Beispielprogramms im Artikel Joystick
/* Compiler: cc65 */ #include <c64.h> #include <conio.h> #include <string.h> const unsigned char sprite_data[] = { 240, 0, 0, 224, 0, 0, 144, 0, 0, 8, 0, 0, 4, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; enum Joystick { oben = 1, unten = 2, links = 4, rechts = 8, feuer = 16 }; void Sprite_anlegen(void) { memcpy((unsigned char *)(13 * 64), sprite_data, 63); *(unsigned char*) 2040 = 13; VIC.spr_ena = 1; VIC.spr0_color = 7; VIC.bgcolor0 = 0; VIC.spr_exp_x = 0; } void main(void) { unsigned char x, y, speed = 2; x = y = 150; CIA1.ddra = 224; Sprite_anlegen(); clrscr(); textcolor(COLOR_YELLOW); while ((CIA1.pra & feuer) != 0) { if ((CIA1.pra & oben) == 0) y -= speed; if ((CIA1.pra & unten) == 0) y += speed; if ((CIA1.pra & links) == 0) x -= speed; if ((CIA1.pra & rechts) == 0) x += speed; if (x > 251) x = 24; if (x < 24) x = 250; if (y < 50) y = 250; if (y > 250) y = 50; gotoxy(0, 0); cprintf("X-Pos: %3d Y-Pos: %3d", x, y); VIC.spr0_x = x; VIC.spr0_y = y; } CIA1.ddra = 255; }