Repository navigation
Expand file tree
/
Copy pathmain.c
More file actions
90 lines (74 loc) · 1.95 KB
/
Copy pathmain.c
File metadata and controls
90 lines (74 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <stdio.h>
#include <SDL2/SDL.h>
#include "entity.h"
#include "component.h"
#include "system.h"
//create the databases
struct entities entities;
struct sprites sprites;
//int key[KEY_COUNT];
const Uint8 *key;
int initialize_entities()
{
//ENTITY_COUNT 500
printf("%d\n", ENTITY_COUNT);
//int player = create_player(&entities, 5.0f, 10.0f);
create_player(&entities, 100.0f, 16.0f);
create_player(&entities, 200.0f, 64.0f);
create_entity(&entities);
return 0;
}
int main(int argc, char** argv)
{
//memset(key, 0, KEY_COUNT);
//Set up SDL
SDL_Window *window;
SDL_Renderer *renderer;
if(SDL_Init(SDL_INIT_VIDEO) < 0)
printf("Error: Could not intitialize SDL. %s", SDL_GetError());
SDL_CreateWindowAndRenderer(0, 0, SDL_WINDOW_RESIZABLE, &window, &renderer);
if(window==NULL)
printf("Error: Could not create window. %s", SDL_GetError());
if(renderer==NULL)
printf("Error: Could not create renderer. %s", SDL_GetError());
//SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "nearest");
SDL_RenderSetLogicalSize(renderer, 640, 400);
SDL_SetRenderDrawColor(renderer, 128, 128, 128, 255);
initialize_entities();
int done = 0;
while(!done)
{
//use new method for getting input since SDL bitches about keys and segfaults :c
key = SDL_GetKeyboardState(NULL);
SDL_Event ev;
while(SDL_PollEvent(&ev))
{
//pass ev to sys_input
switch(ev.type)
{
case SDL_QUIT:
done = 1;
break;
case SDL_KEYDOWN:
if(ev.key.keysym.sym == SDLK_ESCAPE)
done = 1;
if(ev.key.keysym.sym == SDLK_p)
sys_render_print_info(&entities);
//key[ev.key.keysym.sym] = 1;
break;
case SDL_KEYUP:
//key[ev.key.keysym.sym] = 0;
break;
}
}
//INPUT SUBSYSTEM UPDATE
sys_input_update(&entities, key);
SDL_RenderClear(renderer);
sys_render_update(&entities, &sprites, renderer);
//sys_render_print_info(&entities);
SDL_RenderPresent(renderer);
}
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}