Refonte Makefile + refonte pli
This commit is contained in:
parent
ebe94f5611
commit
6098e9222c
2 changed files with 40 additions and 64 deletions
20
Makefile
20
Makefile
|
@ -1,34 +1,32 @@
|
||||||
OUTNAME = ttower
|
OUTNAME = ttower
|
||||||
|
|
||||||
CFLAGS = -O0 -g -Wall -Wextra -I.raylib/include
|
CFLAGS = -O2 -g -Wall -Wextra -I./raylib/include
|
||||||
LDFLAGS = -L./raylib/lib -lraylib -lm
|
#linux
|
||||||
|
#LDFLAGS = -static -L./raylib/lib -lraylib -lm
|
||||||
|
#windows
|
||||||
|
LDFLAGS = -static -lraylib -lgdi32 -lwinmm -lm
|
||||||
|
|
||||||
CC = gcc
|
CC = gcc
|
||||||
OUTPUT = "${OUTNAME}.amd64"
|
OUTPUT = "${OUTNAME}.amd64"
|
||||||
|
|
||||||
ifeq "${TARGET_IS_WIN}" "true"
|
|
||||||
|
|
||||||
CC = x86_64-w64-mingw32-gcc
|
|
||||||
OUTPUT = "${OUTNAME}.exe"
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
BUILD_DIR = build
|
BUILD_DIR = build
|
||||||
SRC_DIR = src
|
SRC_DIR = src
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o : $(SRC_DIR)/%.c
|
$(BUILD_DIR)/%.o : $(SRC_DIR)/%.c
|
||||||
${CC} -c ${CFLAGS} -o $@ $< ${LDFLAGS}
|
${CC} -c ${CFLAGS} -o $@ $< ${LDFLAGS}
|
||||||
|
|
||||||
|
|
||||||
OBJS = $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.c))
|
OBJS = $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.c))
|
||||||
|
|
||||||
all: $(OBJS)
|
all: $(OBJS)
|
||||||
${CC} ${CFLAGS} -o ${OUTPUT} ${OBJS} ${LDFLAGS}
|
${CC} ${CFLAGS} -o ${OUTPUT} ${OBJS} ${LDFLAGS}
|
||||||
|
|
||||||
|
win: all
|
||||||
|
mv $(OUTPUT) "$(OUTNAME).exe"
|
||||||
|
|
||||||
test: all
|
test: all
|
||||||
./${OUTPUT}
|
./${OUTPUT}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf ${BUILD_DIR}/*
|
rm -rf ${BUILD_DIR}/*
|
||||||
|
|
||||||
.PHONY: all builddir test clean
|
.PHONY: all test clean win
|
||||||
|
|
84
src/main.c
84
src/main.c
|
@ -14,6 +14,12 @@
|
||||||
|
|
||||||
#define PQUEUE_SIZE 256
|
#define PQUEUE_SIZE 256
|
||||||
|
|
||||||
|
#define PLANE_W 60
|
||||||
|
#define PLANE_H 60
|
||||||
|
|
||||||
|
#define WINDOW_W 800
|
||||||
|
#define WINDOW_H 600
|
||||||
|
|
||||||
typedef struct{
|
typedef struct{
|
||||||
|
|
||||||
Vector2 pos;
|
Vector2 pos;
|
||||||
|
@ -21,6 +27,8 @@ typedef struct{
|
||||||
|
|
||||||
} Plane;
|
} Plane;
|
||||||
|
|
||||||
|
Rectangle Plane_coll = {.width = PLANE_W, .height = PLANE_H};
|
||||||
|
|
||||||
int lost = 0;
|
int lost = 0;
|
||||||
|
|
||||||
int planen;
|
int planen;
|
||||||
|
@ -48,64 +56,34 @@ void pop_plane(){
|
||||||
memmove(plane_queue, &plane_queue[1], sizeof(Plane)*planen);
|
memmove(plane_queue, &plane_queue[1], sizeof(Plane)*planen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define PLANE_RECT 30
|
||||||
|
|
||||||
void update_planes(int diff, int xpos){
|
void update_planes(int diff, int xpos){
|
||||||
int i, j;
|
float x;
|
||||||
|
int y;
|
||||||
|
xpos = xpos? xpos:1;
|
||||||
|
int sign = abs(xpos)/xpos;
|
||||||
|
float fxpos = xpos/100.0;
|
||||||
|
|
||||||
//TODO : Redo
|
for(y = 0; y < WINDOW_H; y++){
|
||||||
if(planen < 2){
|
//x = (5*(xpos/100)/WINDOW_W*y)^2
|
||||||
int nx = rand() % 600;
|
x = (WINDOW_H-y)*((5.0*fxpos)/(float)WINDOW_W);
|
||||||
int ny = rand() % 400;
|
x *= x * sign;
|
||||||
spawn_plane((Vector2){nx,ny});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
double exp = 2-(0.0016666666*147);
|
|
||||||
double sign = (double)(abs(xpos)/(double)xpos);
|
|
||||||
|
|
||||||
//TODO : Redo
|
|
||||||
for(i = 0; i < planen; i++){
|
|
||||||
Plane *pln = &plane_queue[i];
|
|
||||||
pln->dist += 0.003;
|
|
||||||
if(pln->dist >= 1){
|
|
||||||
for(j = 0; j < 8; j++){
|
|
||||||
double x = pow(sqrt(abs(xpos)),exp) * sign + 153;
|
|
||||||
exp -= 0.0016666666*60;
|
|
||||||
//DrawRectangle(x,147+j*60,50,60,BLACK);
|
|
||||||
//DrawRectangle(x+260,147+j*60,50,60,BLACK);
|
|
||||||
int coll = 0;
|
|
||||||
coll = pln->pos.x < x+104 && pln->pos.x+60 > x &&
|
|
||||||
pln->pos.y > j*60 && pln->pos.y < j*60+60;
|
|
||||||
|
|
||||||
coll = coll | (pln->pos.x < x+104+163 && pln->pos.x+60 > x+163 &&
|
|
||||||
pln->pos.y > j*60 && pln->pos.y < j*60+60);
|
|
||||||
|
|
||||||
if(coll){
|
|
||||||
lost = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pop_plane();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
for(j = 0; j < 8; j++){
|
|
||||||
double x = pow(sqrt(abs(xpos)),exp) * sign + 153;
|
|
||||||
exp -= 0.0016666666*60;
|
|
||||||
DrawRectangle(x,147+j*60,50,60,WHITE);
|
|
||||||
DrawRectangle(x+260,147+j*60,50,60,WHITE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw_towers(Texture2D *towers, int xpos){
|
void draw_towers(Texture2D *towers, int xpos){
|
||||||
double x;
|
float x;
|
||||||
int y;
|
int y;
|
||||||
xpos = xpos == 0 ? 1:xpos;
|
xpos = xpos? xpos:1;
|
||||||
int sign = (double)(abs(xpos)/(double)xpos);
|
int sign = abs(xpos)/xpos;
|
||||||
xpos = sqrt(abs(xpos));
|
float fxpos = xpos/100.0;
|
||||||
double exp = 2;
|
|
||||||
|
|
||||||
for(y = 0; y < 600; y++){
|
for(y = 0; y < WINDOW_H; y++){
|
||||||
x = pow(xpos,exp) * sign;
|
//x = (5*(xpos/100)/WINDOW_W*y)^2
|
||||||
exp -= 0.0016666666;
|
x = (WINDOW_H-y)*((5.0*fxpos)/(float)WINDOW_W);
|
||||||
|
x *= x * sign;
|
||||||
DrawTextureRec(*towers,(Rectangle){.height=1,.width=800,.x=0,.y=y},
|
DrawTextureRec(*towers,(Rectangle){.height=1,.width=800,.x=0,.y=y},
|
||||||
(Vector2){round(x),y},WHITE);
|
(Vector2){round(x),y},WHITE);
|
||||||
}
|
}
|
||||||
|
@ -164,13 +142,11 @@ int main(){
|
||||||
|
|
||||||
ClearBackground(BLUE);
|
ClearBackground(BLUE);
|
||||||
|
|
||||||
if(IsKeyDown(KEY_LEFT))
|
if(IsKeyDown(KEY_LEFT) && xpos > WINDOW_W/-2)
|
||||||
xpos-=3;
|
xpos-=3;
|
||||||
if(IsKeyDown(KEY_RIGHT))
|
if(IsKeyDown(KEY_RIGHT) && xpos < WINDOW_W/2)
|
||||||
xpos+=3;
|
xpos+=3;
|
||||||
|
|
||||||
xpos = clamp(xpos, -200, 200);
|
|
||||||
|
|
||||||
update_planes(0, xpos);
|
update_planes(0, xpos);
|
||||||
|
|
||||||
draw_planes(&plane);
|
draw_planes(&plane);
|
||||||
|
@ -181,6 +157,8 @@ int main(){
|
||||||
|
|
||||||
DrawText(scorebuf, 0,0,30,BLACK);
|
DrawText(scorebuf, 0,0,30,BLACK);
|
||||||
|
|
||||||
|
DrawFPS(0, 100);
|
||||||
|
|
||||||
if(lost)
|
if(lost)
|
||||||
lost_men(&score);
|
lost_men(&score);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue