Skip to content

Commit b30db4e

Browse files
LeviJacoby1991LeviJacoby1991
authored andcommitted
added keyboard input function
1 parent b29b521 commit b30db4e

File tree

1 file changed

+116
-7
lines changed

1 file changed

+116
-7
lines changed

main.cpp

Lines changed: 116 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77

88
//Get sdl poll event and check game controlls are press;
9-
void setkeys();
9+
void setkeys(SDL_Event);
1010
//draw chip8 on screen
1111
void drawChip8();
1212

@@ -28,9 +28,9 @@ int main(int argc, char **argv){
2828
emu.initialize();
2929

3030
//load game
31-
emu.loadGame("Fishie");
31+
emu.loadGame("Pong");
3232
//initialize SDL
33-
SDL_Init(SDL_INIT_VIDEO);
33+
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER);
3434
SDL_CreateWindowAndRenderer(640, 320, SDL_WINDOW_RESIZABLE, &window, &renderer);
3535
//texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, 8, 8);
3636
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0);
@@ -53,15 +53,124 @@ int main(int argc, char **argv){
5353
}
5454

5555
//Store key press state (Press and Release)
56-
//setkeys(/*pass in event */);
56+
setkeys(e);
57+
58+
SDL_Delay(2);
5759
}
5860
}
5961

60-
void setkeys(){
62+
void setkeys(SDL_Event key_event){
6163
//check sdl poll event for key up or key down
6264
//if key up set the corresponding key in the chip8 to 0
63-
64-
//if key down set the corresponding in the chip8 to 1
65+
if(key_event.type == SDL_KEYDOWN){
66+
switch(key_event.key.keysym.sym){
67+
case SDLK_0:
68+
emu.key[0] = 1;
69+
break;
70+
case SDLK_1:
71+
emu.key[1] = 1;
72+
break;
73+
case SDLK_2:
74+
emu.key[2] = 1;
75+
break;
76+
case SDLK_3:
77+
emu.key[3] = 1;
78+
break;
79+
case SDLK_4:
80+
emu.key[4] = 1;
81+
break;
82+
case SDLK_q:
83+
emu.key[5] = 1;
84+
break;
85+
case SDLK_w:
86+
emu.key[6] = 1;
87+
break;
88+
case SDLK_e:
89+
emu.key[7] = 1;
90+
break;
91+
case SDLK_r:
92+
emu.key[8] = 1;
93+
break;
94+
case SDLK_a:
95+
emu.key[9] = 1;
96+
break;
97+
case SDLK_s:
98+
emu.key[10] = 1;
99+
break;
100+
case SDLK_d:
101+
emu.key[11] = 1;
102+
break;
103+
case SDLK_f:
104+
emu.key[12] = 1;
105+
break;
106+
case SDLK_j:
107+
emu.key[13] = 1;
108+
break;
109+
case SDLK_k:
110+
emu.key[14] = 1;
111+
break;
112+
case SDLK_l:
113+
emu.key[15] = 1;
114+
break;
115+
default:
116+
break;
117+
}
118+
}
119+
//if key up set the corresponding in the chip8 to 1
120+
if(key_event.type == SDL_KEYUP){
121+
switch(key_event.key.keysym.sym){
122+
case SDLK_0:
123+
emu.key[0] = 0;
124+
break;
125+
case SDLK_1:
126+
emu.key[1] = 0;
127+
break;
128+
case SDLK_2:
129+
emu.key[2] = 0;
130+
break;
131+
case SDLK_3:
132+
emu.key[3] = 0;
133+
break;
134+
case SDLK_4:
135+
emu.key[4] = 0;
136+
break;
137+
case SDLK_q:
138+
emu.key[5] = 0;
139+
break;
140+
case SDLK_w:
141+
emu.key[6] = 0;
142+
break;
143+
case SDLK_e:
144+
emu.key[7] = 0;
145+
break;
146+
case SDLK_r:
147+
emu.key[8] = 0;
148+
break;
149+
case SDLK_a:
150+
emu.key[9] = 0;
151+
break;
152+
case SDLK_s:
153+
emu.key[10] = 0;
154+
break;
155+
case SDLK_d:
156+
emu.key[11] = 0;
157+
break;
158+
case SDLK_f:
159+
emu.key[12] = 0;
160+
break;
161+
case SDLK_j:
162+
emu.key[13] = 0;
163+
break;
164+
case SDLK_k:
165+
emu.key[14] = 0;
166+
break;
167+
case SDLK_l:
168+
emu.key[15] = 0;
169+
break;
170+
default:
171+
break;
172+
}
173+
}
65174
}
66175
void drawChip8(){
67176
//go through the chip8s graphics array and draw to the screen if

0 commit comments

Comments
 (0)