- 重构了游戏引擎的核心逻辑和架构 - 添加了新的实体组件系统(ECS) - 实现了简单的碰撞检测和响应 - 新增了地图和子弹功能 - 优化了输入处理和渲染逻辑 - 调整了游戏控制方式
56 lines
1.1 KiB
Makefile
56 lines
1.1 KiB
Makefile
# 编译器设置
|
|
CC = gcc
|
|
CFLAGS = -Wall -Wextra -g -I../game_engine
|
|
LDFLAGS = -lgdi32
|
|
|
|
# 目录设置
|
|
ROOT_DIR := .
|
|
BUILD_DIR := build
|
|
ENGINE_DIR := ../game_engine
|
|
|
|
# 手动指定源文件目录
|
|
SRC_DIRS = $(ROOT_DIR) \
|
|
$(ROOT_DIR)/entities \
|
|
$(ROOT_DIR)/plantform/win_app \
|
|
$(ENGINE_DIR)
|
|
|
|
SRCS = $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c))
|
|
OBJS := $(patsubst $(ROOT_DIR)/%.c,$(BUILD_DIR)/core/%.o,$(filter $(ROOT_DIR)/%,$(SRCS)))
|
|
OBJS += $(patsubst $(ENGINE_DIR)/%.c,$(BUILD_DIR)/engine/%.o,$(filter $(ENGINE_DIR)/%,$(SRCS)))
|
|
|
|
TARGET = $(BUILD_DIR)/../game.exe
|
|
|
|
$(TARGET): $(OBJS)
|
|
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
|
|
|
|
# 当前目录下的文件编译规则
|
|
$(BUILD_DIR)/core/%.o: $(ROOT_DIR)/%.c
|
|
@mkdir -p $(@D)
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
# 引擎目录下的文件编译规则
|
|
$(BUILD_DIR)/engine/%.o: $(ENGINE_DIR)/%.c
|
|
@mkdir -p $(@D)
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(BUILD_DIR):
|
|
mkdir -p $(BUILD_DIR)
|
|
|
|
debug:
|
|
@echo "Source files:"
|
|
@echo $(SRCS)
|
|
@echo "Object files:"
|
|
@echo $(OBJS)
|
|
|
|
all: build
|
|
|
|
build: $(TARGET)
|
|
|
|
run: build
|
|
./$(TARGET)
|
|
|
|
clean:
|
|
rm -rf $(BUILD_DIR)
|
|
|
|
.PHONY: all build run clean debug
|