first commit
This commit is contained in:
commit
56e08f0cd2
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
|
||||
|
||||
*.o
|
||||
game
|
||||
36
Makefile
Normal file
36
Makefile
Normal file
@ -0,0 +1,36 @@
|
||||
# A simple Makefile for compiling small SDL projects
|
||||
|
||||
# set the compiler
|
||||
CC := clang
|
||||
|
||||
# set the compiler flags
|
||||
CFLAGS := `sdl2-config --libs --cflags` -ggdb3 -O0 --std=c99 -Wall -lSDL2_image -lm
|
||||
|
||||
# add header files here
|
||||
HDRS :=
|
||||
|
||||
# add source files here
|
||||
SRCS := game.c
|
||||
|
||||
# generate names of object files
|
||||
OBJS := $(SRCS:.c=.o)
|
||||
|
||||
# name of executable
|
||||
EXEC := game
|
||||
|
||||
# default recipe
|
||||
all: $(EXEC)
|
||||
|
||||
# recipe for building the final executable
|
||||
$(EXEC): $(OBJS) $(HDRS) Makefile
|
||||
$(CC) -o $@ $(OBJS) $(CFLAGS)
|
||||
|
||||
# recipe for building object files
|
||||
#$(OBJS): $(@:.o=.c) $(HDRS) Makefile
|
||||
# $(CC) -o $@ $(@:.o=.c) -c $(CFLAGS)
|
||||
|
||||
# recipe to clean the workspace
|
||||
clean:
|
||||
rm -f $(EXEC) $(OBJS)
|
||||
|
||||
.PHONY: all clean
|
||||
80
game.c
Normal file
80
game.c
Normal file
@ -0,0 +1,80 @@
|
||||
#include <stdio.h>
|
||||
#include <SDL2/SDL.h>
|
||||
#include <SDL2/SDL_image.h>
|
||||
#include <SDL2/SDL_timer.h>
|
||||
|
||||
#define WINDOW_WIDTH 500
|
||||
#define WINDOW_HEIGHT 300
|
||||
|
||||
int main(void){
|
||||
SDL_Window* window;
|
||||
SDL_Renderer* renderer;
|
||||
SDL_Surface* surface;
|
||||
SDL_Texture* texture;
|
||||
|
||||
// initialize SDL
|
||||
if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER) != 0){
|
||||
printf("error initializing SDL: %s\n", SDL_GetError());
|
||||
return 1;
|
||||
}
|
||||
// create window
|
||||
window = SDL_CreateWindow("Cart Race",
|
||||
SDL_WINDOWPOS_CENTERED,
|
||||
SDL_WINDOWPOS_CENTERED,
|
||||
640, 480, 0);
|
||||
if(!window){
|
||||
printf("error create window: %s\n", SDL_GetError());
|
||||
SDL_Quit();
|
||||
return 2;
|
||||
}
|
||||
|
||||
// create renderer
|
||||
renderer = SDL_CreateRenderer(
|
||||
window, -1,
|
||||
SDL_RENDERER_ACCELERATED|SDL_RENDERER_PRESENTVSYNC
|
||||
);
|
||||
|
||||
if(!renderer){
|
||||
printf("error create renderer: %s\n", SDL_GetError());
|
||||
SDL_DestroyWindow(window);
|
||||
SDL_Quit();
|
||||
return 3;
|
||||
}
|
||||
|
||||
// create surface
|
||||
surface = IMG_Load("img/hello.png");
|
||||
if(!surface){
|
||||
printf("error create surface: %s\n", SDL_GetError());
|
||||
SDL_DestroyRenderer(renderer);
|
||||
SDL_DestroyWindow(window);
|
||||
SDL_Quit();
|
||||
return 3;
|
||||
}
|
||||
|
||||
// create texture
|
||||
texture = SDL_CreateTextureFromSurface(renderer, surface);
|
||||
SDL_FreeSurface(surface);
|
||||
if(!texture){
|
||||
printf("error create texture: %s\n", SDL_GetError());
|
||||
SDL_DestroyRenderer(renderer);
|
||||
SDL_DestroyWindow(window);
|
||||
SDL_Quit();
|
||||
return 3;
|
||||
}
|
||||
|
||||
// clear the window
|
||||
SDL_RenderClear(renderer);
|
||||
|
||||
// drow image
|
||||
SDL_RenderCopy(renderer, texture, NULL, NULL);
|
||||
SDL_RenderPresent(renderer);
|
||||
|
||||
// wait
|
||||
SDL_Delay(5000);
|
||||
|
||||
// clean up resources before exiting
|
||||
SDL_DestroyTexture(texture);
|
||||
SDL_DestroyRenderer(renderer);
|
||||
SDL_DestroyWindow(window);
|
||||
SDL_Quit();
|
||||
}
|
||||
BIN
img/hello.png
Normal file
BIN
img/hello.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
Loading…
x
Reference in New Issue
Block a user