Keep original end of line characters.
This commit is contained in:
12
.gitignore
vendored
12
.gitignore
vendored
@@ -1,6 +1,6 @@
|
||||
build-*
|
||||
*.dll
|
||||
*.exe
|
||||
*.so
|
||||
*.so.*
|
||||
DIST/*
|
||||
build-*
|
||||
*.dll
|
||||
*.exe
|
||||
*.so
|
||||
*.so.*
|
||||
DIST/*
|
||||
|
||||
312
Game/GameEnts.c
312
Game/GameEnts.c
@@ -1,156 +1,156 @@
|
||||
// Copyright (C) 2012 Valeriano Alfonso Rodriguez (Kableado)
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "GameLib.h"
|
||||
extern int gamelib_debug;
|
||||
|
||||
#include "GameEnts.h"
|
||||
|
||||
DrawImg img_player;
|
||||
DrawImg img_platform;
|
||||
DrawImg img_block;
|
||||
|
||||
Entity ent_Player;
|
||||
Entity ent_Platform;
|
||||
Entity ent_Block;
|
||||
|
||||
|
||||
|
||||
|
||||
int EntityApplyGravity(Entity e){
|
||||
float grav=10.0f;
|
||||
float vTerminal=50.0f;
|
||||
vec2 vGrav;
|
||||
|
||||
// Only apply gravity to some entity types
|
||||
if(!(
|
||||
e->type==Ent_Player ||
|
||||
0
|
||||
))
|
||||
{
|
||||
return(1);
|
||||
}
|
||||
|
||||
// Apply gravity
|
||||
vec2_set(vGrav,0.0f,grav);
|
||||
Entity_AddVelLimit(e,vGrav,vTerminal);
|
||||
|
||||
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void player_proc(Entity e,int ft){
|
||||
float acel=8.0f;
|
||||
float maxVel=30.0f;
|
||||
float jumpVel=50.0f;
|
||||
float shootVel=50.0f;
|
||||
|
||||
if(Input_GetKey(InputKey_Jump)==InputKey_Pressed ||
|
||||
Input_GetKey(InputKey_Up)==InputKey_Pressed)
|
||||
{
|
||||
vec2 jump;
|
||||
|
||||
// Apply jump
|
||||
if(e->vel[1]>(-jumpVel)){
|
||||
e->vel[1]=-jumpVel;
|
||||
}
|
||||
Entity_CalcBBox(e);
|
||||
|
||||
// FIXME: play sound
|
||||
}
|
||||
if(Input_GetKey(InputKey_Left)){
|
||||
vec2 left;
|
||||
|
||||
// Apply left movement
|
||||
vec2_set(left,-acel,0.0f);
|
||||
Entity_AddVelLimit(e,left,maxVel);
|
||||
|
||||
e->A=0;
|
||||
}
|
||||
if(Input_GetKey(InputKey_Right)){
|
||||
vec2 right;
|
||||
|
||||
// Apply right movement
|
||||
vec2_set(right,acel,0.0f)
|
||||
Entity_AddVelLimit(e,right,maxVel);
|
||||
|
||||
e->A=1;
|
||||
}
|
||||
if(Input_GetKey(InputKey_Action1)==InputKey_Pressed ||
|
||||
Input_GetKey(InputKey_Action2)==InputKey_Pressed)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Scroll View
|
||||
//GameLib_MoveToPosH(e->pos,0.6f);
|
||||
GameLib_MoveToPos(e->pos,0.6f);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void GameEnts_Init(){
|
||||
|
||||
|
||||
/////////////////////////////
|
||||
// Load and initialize media.
|
||||
//
|
||||
|
||||
img_player=Draw_LoadImage("data/player.png");
|
||||
img_platform=Draw_LoadImage("data/platform.png");
|
||||
img_block=Draw_LoadImage("data/block.png");
|
||||
|
||||
|
||||
/////////////////////////
|
||||
// Initialize entity types.
|
||||
//
|
||||
|
||||
ent_Player=Entity_New();
|
||||
ent_Player->type=Ent_Player;
|
||||
//ent_Player->flags=EntityFlag_Light;
|
||||
//Entity_SetLight(ent_Player,.2,.2,.2,200);
|
||||
ent_Player->flags=EntityFlag_Collision|EntityFlag_Overlap;
|
||||
ent_Player->zorder=0;
|
||||
AnimPlay_SetImg(&ent_Player->anim,img_player);
|
||||
ent_Player->proc=player_proc;
|
||||
ent_Player->mass=1.0f;
|
||||
ent_Player->radius=12;
|
||||
ent_Player->width=24;
|
||||
ent_Player->height=24;
|
||||
ent_Player->fric_static=0.0f;
|
||||
ent_Player->fric_dynamic=0.2f;
|
||||
|
||||
ent_Platform=Entity_New();
|
||||
ent_Platform->type=Ent_Platform;
|
||||
ent_Platform->flags=EntityFlag_PlatformCollision;
|
||||
ent_Platform->zorder=-1;
|
||||
AnimPlay_SetImg(&ent_Platform->anim,img_platform);
|
||||
ent_Platform->mass=0.0f;
|
||||
ent_Platform->radius=12;
|
||||
ent_Platform->width=64;
|
||||
ent_Platform->height=16;
|
||||
ent_Platform->fric_static=0.0f;
|
||||
ent_Platform->fric_dynamic=0.2f;
|
||||
|
||||
ent_Block=Entity_New();
|
||||
ent_Block->type=Ent_Block;
|
||||
ent_Block->flags=EntityFlag_BlockCollision;
|
||||
ent_Block->zorder=-1;
|
||||
AnimPlay_SetImg(&ent_Block->anim,img_block);
|
||||
ent_Block->mass=0.0f;
|
||||
ent_Block->radius=32;
|
||||
ent_Block->width=64;
|
||||
ent_Block->height=64;
|
||||
ent_Block->fric_static=0.0f;
|
||||
ent_Block->fric_dynamic=0.2f;
|
||||
|
||||
}
|
||||
|
||||
// Copyright (C) 2012 Valeriano Alfonso Rodriguez (Kableado)
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "GameLib.h"
|
||||
extern int gamelib_debug;
|
||||
|
||||
#include "GameEnts.h"
|
||||
|
||||
DrawImg img_player;
|
||||
DrawImg img_platform;
|
||||
DrawImg img_block;
|
||||
|
||||
Entity ent_Player;
|
||||
Entity ent_Platform;
|
||||
Entity ent_Block;
|
||||
|
||||
|
||||
|
||||
|
||||
int EntityApplyGravity(Entity e){
|
||||
float grav=10.0f;
|
||||
float vTerminal=50.0f;
|
||||
vec2 vGrav;
|
||||
|
||||
// Only apply gravity to some entity types
|
||||
if(!(
|
||||
e->type==Ent_Player ||
|
||||
0
|
||||
))
|
||||
{
|
||||
return(1);
|
||||
}
|
||||
|
||||
// Apply gravity
|
||||
vec2_set(vGrav,0.0f,grav);
|
||||
Entity_AddVelLimit(e,vGrav,vTerminal);
|
||||
|
||||
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void player_proc(Entity e,int ft){
|
||||
float acel=8.0f;
|
||||
float maxVel=30.0f;
|
||||
float jumpVel=50.0f;
|
||||
float shootVel=50.0f;
|
||||
|
||||
if(Input_GetKey(InputKey_Jump)==InputKey_Pressed ||
|
||||
Input_GetKey(InputKey_Up)==InputKey_Pressed)
|
||||
{
|
||||
vec2 jump;
|
||||
|
||||
// Apply jump
|
||||
if(e->vel[1]>(-jumpVel)){
|
||||
e->vel[1]=-jumpVel;
|
||||
}
|
||||
Entity_CalcBBox(e);
|
||||
|
||||
// FIXME: play sound
|
||||
}
|
||||
if(Input_GetKey(InputKey_Left)){
|
||||
vec2 left;
|
||||
|
||||
// Apply left movement
|
||||
vec2_set(left,-acel,0.0f);
|
||||
Entity_AddVelLimit(e,left,maxVel);
|
||||
|
||||
e->A=0;
|
||||
}
|
||||
if(Input_GetKey(InputKey_Right)){
|
||||
vec2 right;
|
||||
|
||||
// Apply right movement
|
||||
vec2_set(right,acel,0.0f)
|
||||
Entity_AddVelLimit(e,right,maxVel);
|
||||
|
||||
e->A=1;
|
||||
}
|
||||
if(Input_GetKey(InputKey_Action1)==InputKey_Pressed ||
|
||||
Input_GetKey(InputKey_Action2)==InputKey_Pressed)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Scroll View
|
||||
//GameLib_MoveToPosH(e->pos,0.6f);
|
||||
GameLib_MoveToPos(e->pos,0.6f);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void GameEnts_Init(){
|
||||
|
||||
|
||||
/////////////////////////////
|
||||
// Load and initialize media.
|
||||
//
|
||||
|
||||
img_player=Draw_LoadImage("data/player.png");
|
||||
img_platform=Draw_LoadImage("data/platform.png");
|
||||
img_block=Draw_LoadImage("data/block.png");
|
||||
|
||||
|
||||
/////////////////////////
|
||||
// Initialize entity types.
|
||||
//
|
||||
|
||||
ent_Player=Entity_New();
|
||||
ent_Player->type=Ent_Player;
|
||||
//ent_Player->flags=EntityFlag_Light;
|
||||
//Entity_SetLight(ent_Player,.2,.2,.2,200);
|
||||
ent_Player->flags=EntityFlag_Collision|EntityFlag_Overlap;
|
||||
ent_Player->zorder=0;
|
||||
AnimPlay_SetImg(&ent_Player->anim,img_player);
|
||||
ent_Player->proc=player_proc;
|
||||
ent_Player->mass=1.0f;
|
||||
ent_Player->radius=12;
|
||||
ent_Player->width=24;
|
||||
ent_Player->height=24;
|
||||
ent_Player->fric_static=0.0f;
|
||||
ent_Player->fric_dynamic=0.2f;
|
||||
|
||||
ent_Platform=Entity_New();
|
||||
ent_Platform->type=Ent_Platform;
|
||||
ent_Platform->flags=EntityFlag_PlatformCollision;
|
||||
ent_Platform->zorder=-1;
|
||||
AnimPlay_SetImg(&ent_Platform->anim,img_platform);
|
||||
ent_Platform->mass=0.0f;
|
||||
ent_Platform->radius=12;
|
||||
ent_Platform->width=64;
|
||||
ent_Platform->height=16;
|
||||
ent_Platform->fric_static=0.0f;
|
||||
ent_Platform->fric_dynamic=0.2f;
|
||||
|
||||
ent_Block=Entity_New();
|
||||
ent_Block->type=Ent_Block;
|
||||
ent_Block->flags=EntityFlag_BlockCollision;
|
||||
ent_Block->zorder=-1;
|
||||
AnimPlay_SetImg(&ent_Block->anim,img_block);
|
||||
ent_Block->mass=0.0f;
|
||||
ent_Block->radius=32;
|
||||
ent_Block->width=64;
|
||||
ent_Block->height=64;
|
||||
ent_Block->fric_static=0.0f;
|
||||
ent_Block->fric_dynamic=0.2f;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
// Copyright (C) 2012 Valeriano Alfonso Rodriguez (Kableado)
|
||||
|
||||
#ifndef _GAMEENTS_H_
|
||||
#define _GAMEENTS_H_
|
||||
|
||||
|
||||
|
||||
enum {
|
||||
Ent_Player,
|
||||
Ent_Platform,
|
||||
Ent_Block,
|
||||
|
||||
Ent_Last
|
||||
} EntityType;
|
||||
|
||||
extern Entity ent_Player;
|
||||
extern Entity ent_Platform;
|
||||
extern Entity ent_Block;
|
||||
|
||||
int EntityApplyGravity(Entity e);
|
||||
|
||||
void GameEnts_Init();
|
||||
|
||||
#endif
|
||||
|
||||
// Copyright (C) 2012 Valeriano Alfonso Rodriguez (Kableado)
|
||||
|
||||
#ifndef _GAMEENTS_H_
|
||||
#define _GAMEENTS_H_
|
||||
|
||||
|
||||
|
||||
enum {
|
||||
Ent_Player,
|
||||
Ent_Platform,
|
||||
Ent_Block,
|
||||
|
||||
Ent_Last
|
||||
} EntityType;
|
||||
|
||||
extern Entity ent_Player;
|
||||
extern Entity ent_Platform;
|
||||
extern Entity ent_Block;
|
||||
|
||||
int EntityApplyGravity(Entity e);
|
||||
|
||||
void GameEnts_Init();
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
254
Game/GameMap.c
254
Game/GameMap.c
@@ -1,128 +1,128 @@
|
||||
// Copyright (C) 2012 Valeriano Alfonso Rodriguez (Kableado)
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "GameLib.h"
|
||||
|
||||
#include "GameEnts.h"
|
||||
#include "GameMap.h"
|
||||
|
||||
|
||||
int ReadLine(FILE *f,char *line,int max){
|
||||
int c;
|
||||
int i=0;
|
||||
while(i<(max-1)){
|
||||
c=fgetc(f);
|
||||
if(c==EOF){
|
||||
line[i]=0;
|
||||
return(-1);
|
||||
}
|
||||
if(c=='\r'){
|
||||
continue;
|
||||
}
|
||||
if(c=='\n'){
|
||||
line[i]=0;
|
||||
return(i);
|
||||
}
|
||||
line[i]=c;
|
||||
i++;
|
||||
}
|
||||
line[i]=0;
|
||||
return(i);
|
||||
}
|
||||
|
||||
|
||||
Entity GameMapAux_CreateEnt(Entity ent,int i,int j,int res){
|
||||
Entity e;
|
||||
vec2 pos;
|
||||
e=Entity_Copy(ent);
|
||||
vec2_set(pos,(res/2)+i*res,(res/2)+j*res);
|
||||
vec2_plus(e->pos,e->pos,pos);
|
||||
Entity_CalcBBox(e);
|
||||
GameLib_AddEntity(e);
|
||||
return(e);
|
||||
}
|
||||
|
||||
|
||||
#define MaxLineLen 1024
|
||||
|
||||
int GameMap_LoadLevel(char *filename,int res){
|
||||
FILE *file;
|
||||
char line[MaxLineLen];
|
||||
int len,i,j;
|
||||
int width,height;
|
||||
char *map;
|
||||
|
||||
|
||||
// Open the file
|
||||
file=fopen(filename,"rb");
|
||||
if(!file){
|
||||
return(0);
|
||||
}
|
||||
|
||||
// Read the file to determine sizes
|
||||
width=0;
|
||||
height=0;
|
||||
do{
|
||||
len=ReadLine(file,line,MaxLineLen);
|
||||
if(len>-1){
|
||||
if(len>height){
|
||||
height=len;
|
||||
}
|
||||
width++;
|
||||
}
|
||||
}while(len>-1);
|
||||
fseek(file,0,SEEK_SET);
|
||||
|
||||
|
||||
// Build the map
|
||||
map=malloc(sizeof(char)*width*height);
|
||||
memset(map,0,width*height);
|
||||
#define MAP(x,y) map[(x)+((y)*width)]
|
||||
j=0;
|
||||
do{
|
||||
len=ReadLine(file,line,MaxLineLen);
|
||||
for(i=0;i<len;i++){
|
||||
MAP(j,(height-1)-i)=line[i];
|
||||
}
|
||||
j++;
|
||||
}while(len>-1);
|
||||
|
||||
|
||||
// Close the file
|
||||
fclose(file);
|
||||
|
||||
|
||||
// Parse the map
|
||||
for(j=0;j<height;j++){
|
||||
for(i=0;i<width;i++){
|
||||
Entity ent;
|
||||
|
||||
|
||||
|
||||
if(MAP(i,j)=='P'){
|
||||
// Player
|
||||
GameMapAux_CreateEnt(ent_Player,i,j,res);
|
||||
}
|
||||
if(MAP(i,j)=='#'){
|
||||
// Block
|
||||
ent=GameMapAux_CreateEnt(ent_Block,i,j,res);
|
||||
}
|
||||
if(MAP(i,j)=='|'){
|
||||
// Platform
|
||||
ent=GameMapAux_CreateEnt(ent_Platform,i,j,res);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Cleanup
|
||||
free(map);
|
||||
#undef MAP
|
||||
|
||||
return(1);
|
||||
// Copyright (C) 2012 Valeriano Alfonso Rodriguez (Kableado)
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "GameLib.h"
|
||||
|
||||
#include "GameEnts.h"
|
||||
#include "GameMap.h"
|
||||
|
||||
|
||||
int ReadLine(FILE *f,char *line,int max){
|
||||
int c;
|
||||
int i=0;
|
||||
while(i<(max-1)){
|
||||
c=fgetc(f);
|
||||
if(c==EOF){
|
||||
line[i]=0;
|
||||
return(-1);
|
||||
}
|
||||
if(c=='\r'){
|
||||
continue;
|
||||
}
|
||||
if(c=='\n'){
|
||||
line[i]=0;
|
||||
return(i);
|
||||
}
|
||||
line[i]=c;
|
||||
i++;
|
||||
}
|
||||
line[i]=0;
|
||||
return(i);
|
||||
}
|
||||
|
||||
|
||||
Entity GameMapAux_CreateEnt(Entity ent,int i,int j,int res){
|
||||
Entity e;
|
||||
vec2 pos;
|
||||
e=Entity_Copy(ent);
|
||||
vec2_set(pos,(res/2)+i*res,(res/2)+j*res);
|
||||
vec2_plus(e->pos,e->pos,pos);
|
||||
Entity_CalcBBox(e);
|
||||
GameLib_AddEntity(e);
|
||||
return(e);
|
||||
}
|
||||
|
||||
|
||||
#define MaxLineLen 1024
|
||||
|
||||
int GameMap_LoadLevel(char *filename,int res){
|
||||
FILE *file;
|
||||
char line[MaxLineLen];
|
||||
int len,i,j;
|
||||
int width,height;
|
||||
char *map;
|
||||
|
||||
|
||||
// Open the file
|
||||
file=fopen(filename,"rb");
|
||||
if(!file){
|
||||
return(0);
|
||||
}
|
||||
|
||||
// Read the file to determine sizes
|
||||
width=0;
|
||||
height=0;
|
||||
do{
|
||||
len=ReadLine(file,line,MaxLineLen);
|
||||
if(len>-1){
|
||||
if(len>height){
|
||||
height=len;
|
||||
}
|
||||
width++;
|
||||
}
|
||||
}while(len>-1);
|
||||
fseek(file,0,SEEK_SET);
|
||||
|
||||
|
||||
// Build the map
|
||||
map=malloc(sizeof(char)*width*height);
|
||||
memset(map,0,width*height);
|
||||
#define MAP(x,y) map[(x)+((y)*width)]
|
||||
j=0;
|
||||
do{
|
||||
len=ReadLine(file,line,MaxLineLen);
|
||||
for(i=0;i<len;i++){
|
||||
MAP(j,(height-1)-i)=line[i];
|
||||
}
|
||||
j++;
|
||||
}while(len>-1);
|
||||
|
||||
|
||||
// Close the file
|
||||
fclose(file);
|
||||
|
||||
|
||||
// Parse the map
|
||||
for(j=0;j<height;j++){
|
||||
for(i=0;i<width;i++){
|
||||
Entity ent;
|
||||
|
||||
|
||||
|
||||
if(MAP(i,j)=='P'){
|
||||
// Player
|
||||
GameMapAux_CreateEnt(ent_Player,i,j,res);
|
||||
}
|
||||
if(MAP(i,j)=='#'){
|
||||
// Block
|
||||
ent=GameMapAux_CreateEnt(ent_Block,i,j,res);
|
||||
}
|
||||
if(MAP(i,j)=='|'){
|
||||
// Platform
|
||||
ent=GameMapAux_CreateEnt(ent_Platform,i,j,res);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Cleanup
|
||||
free(map);
|
||||
#undef MAP
|
||||
|
||||
return(1);
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
// Copyright (C) 2012 Valeriano Alfonso Rodriguez (Kableado)
|
||||
#ifndef _GAMEMAP_H_
|
||||
#define _GAMEMAP_H_
|
||||
|
||||
int GameMap_LoadLevel(char *filename,int res);
|
||||
|
||||
|
||||
#endif
|
||||
// Copyright (C) 2012 Valeriano Alfonso Rodriguez (Kableado)
|
||||
#ifndef _GAMEMAP_H_
|
||||
#define _GAMEMAP_H_
|
||||
|
||||
int GameMap_LoadLevel(char *filename,int res);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
140
Game/main.c
140
Game/main.c
@@ -1,71 +1,71 @@
|
||||
// Copyright (C) 2012 Valeriano Alfonso Rodriguez (Kableado)
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "GameLib.h"
|
||||
extern int gamelib_debug;
|
||||
|
||||
#include "GameEnts.h"
|
||||
#include "GameMap.h"
|
||||
|
||||
|
||||
DrawFnt font;
|
||||
DrawFnt font_shad;
|
||||
|
||||
void ProcGame(){
|
||||
|
||||
}
|
||||
|
||||
void PostProcGame(){
|
||||
// Apply gravity to every entity
|
||||
GameLib_ForEachEnt(EntityApplyGravity);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc,char *argv[]){
|
||||
int i,j;
|
||||
Entity *e;
|
||||
|
||||
|
||||
srand(time(NULL));
|
||||
|
||||
if (argc>1) {
|
||||
if (!strcmp(argv[1],"debug")) {
|
||||
gamelib_debug=1;
|
||||
printf("Debug Mode Activated!\n");
|
||||
}
|
||||
}
|
||||
|
||||
GameLib_Init(640,480,"Game",20,60);
|
||||
|
||||
|
||||
|
||||
/////////////////////////////
|
||||
// Load and initialize media.
|
||||
//
|
||||
font=Draw_DefaultFont(255,255,255,255);
|
||||
font_shad=Draw_DefaultFont(0,0,0,127);
|
||||
|
||||
GameEnts_Init();
|
||||
|
||||
|
||||
/////////////////////////
|
||||
// Initialize world.
|
||||
//
|
||||
GameLib_DelEnts();
|
||||
GameMap_LoadLevel("data/level_01.txt",64);
|
||||
|
||||
|
||||
/////////////////////////
|
||||
// Run the world.
|
||||
//
|
||||
|
||||
GameLib_Loop(ProcGame,PostProcGame,NULL,NULL);
|
||||
|
||||
|
||||
return(0);
|
||||
// Copyright (C) 2012 Valeriano Alfonso Rodriguez (Kableado)
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "GameLib.h"
|
||||
extern int gamelib_debug;
|
||||
|
||||
#include "GameEnts.h"
|
||||
#include "GameMap.h"
|
||||
|
||||
|
||||
DrawFnt font;
|
||||
DrawFnt font_shad;
|
||||
|
||||
void ProcGame(){
|
||||
|
||||
}
|
||||
|
||||
void PostProcGame(){
|
||||
// Apply gravity to every entity
|
||||
GameLib_ForEachEnt(EntityApplyGravity);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc,char *argv[]){
|
||||
int i,j;
|
||||
Entity *e;
|
||||
|
||||
|
||||
srand(time(NULL));
|
||||
|
||||
if (argc>1) {
|
||||
if (!strcmp(argv[1],"debug")) {
|
||||
gamelib_debug=1;
|
||||
printf("Debug Mode Activated!\n");
|
||||
}
|
||||
}
|
||||
|
||||
GameLib_Init(640,480,"Game",20,60);
|
||||
|
||||
|
||||
|
||||
/////////////////////////////
|
||||
// Load and initialize media.
|
||||
//
|
||||
font=Draw_DefaultFont(255,255,255,255);
|
||||
font_shad=Draw_DefaultFont(0,0,0,127);
|
||||
|
||||
GameEnts_Init();
|
||||
|
||||
|
||||
/////////////////////////
|
||||
// Initialize world.
|
||||
//
|
||||
GameLib_DelEnts();
|
||||
GameMap_LoadLevel("data/level_01.txt",64);
|
||||
|
||||
|
||||
/////////////////////////
|
||||
// Run the world.
|
||||
//
|
||||
|
||||
GameLib_Loop(ProcGame,PostProcGame,NULL,NULL);
|
||||
|
||||
|
||||
return(0);
|
||||
}
|
||||
214
Makefile.common
214
Makefile.common
@@ -1,107 +1,107 @@
|
||||
|
||||
|
||||
########################
|
||||
# GameLib Declarations #
|
||||
########################
|
||||
CFLAGS += -IGameLib
|
||||
GAMELIB_HEADS = \
|
||||
GameLib/Time.h \
|
||||
GameLib/Util.h \
|
||||
GameLib/QuadArray2D.h \
|
||||
GameLib/Draw.h \
|
||||
GameLib/Input.h \
|
||||
GameLib/Audio.h \
|
||||
GameLib/Anim.h \
|
||||
GameLib/Entity.h \
|
||||
GameLib/GameLib.h
|
||||
GAMELIBS_OBJS = \
|
||||
$(BUILDDIR)/GameLib/Time.o \
|
||||
$(BUILDDIR)/GameLib/Util.o \
|
||||
$(BUILDDIR)/GameLib/QuadArray2D.o \
|
||||
$(BUILDDIR)/GameLib/Draw.o \
|
||||
$(BUILDDIR)/GameLib/Input.o \
|
||||
$(BUILDDIR)/GameLib/Audio.o \
|
||||
$(BUILDDIR)/GameLib/Anim.o \
|
||||
$(BUILDDIR)/GameLib/Entity.o \
|
||||
$(BUILDDIR)/GameLib/GameLib.o
|
||||
RES_GAMELIB_OUT = $(BUILDDIR)/$(RES_GAMELIB)
|
||||
|
||||
#####################
|
||||
# Game Declarations #
|
||||
#####################
|
||||
GAME_HEADS = $(GAMELIB_HEADS) Game/GameEnts.h Game/GameMap.h
|
||||
GAME_OBJS = \
|
||||
$(BUILDDIR)/Game/GameEnts.o \
|
||||
$(BUILDDIR)/Game/GameMap.o \
|
||||
$(BUILDDIR)/Game/main.o
|
||||
RES_GAME_OUT = $(BUILDDIR)/$(RES_GAME)
|
||||
|
||||
|
||||
#################
|
||||
# General Rules #
|
||||
#################
|
||||
all: $(BUILDDIR) $(RES_GAME_OUT)
|
||||
|
||||
$(BUILDDIR):
|
||||
$(MKDIR) $(BUILDDIR)
|
||||
$(MKDIR) $(BUILDDIR)/GameLib
|
||||
$(MKDIR) $(BUILDDIR)/Game
|
||||
|
||||
clean:
|
||||
$(RM) $(GAMELIBS_OBJS) $(RES_GAMELIB_OUT) $(GAME_OBJS) $(RES_GAME_OUT)
|
||||
|
||||
run: $(BUILDDIR) $(RES_GAME_OUT)
|
||||
$(LAUNCHER) ./$(RES_GAME_OUT) debug
|
||||
|
||||
rebuild: clean all
|
||||
|
||||
#################
|
||||
# GameLib Rules #
|
||||
#################
|
||||
$(BUILDDIR)/GameLib/Time.o: GameLib/Time.c $(HEADS)
|
||||
$(CC) -c GameLib/Time.c -o $(BUILDDIR)/GameLib/Time.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/Util.o: GameLib/Util.c $(HEADS)
|
||||
$(CC) -c GameLib/Util.c -o $(BUILDDIR)/GameLib/Util.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/QuadArray2D.o: GameLib/QuadArray2D.c $(HEADS)
|
||||
$(CC) -c GameLib/QuadArray2D.c -o $(BUILDDIR)/GameLib/QuadArray2D.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/Draw.o: GameLib/Draw.c $(HEADS)
|
||||
$(CC) -c GameLib/Draw.c -o $(BUILDDIR)/GameLib/Draw.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/Input.o: GameLib/Input.c $(HEADS)
|
||||
$(CC) -c GameLib/Input.c -o $(BUILDDIR)/GameLib/Input.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/Audio.o: GameLib/Audio.c $(HEADS)
|
||||
$(CC) -c GameLib/Audio.c -o $(BUILDDIR)/GameLib/Audio.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/Entity.o: GameLib/Entity.c $(HEADS)
|
||||
$(CC) -c GameLib/Entity.c -o $(BUILDDIR)/GameLib/Entity.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/Anim.o: GameLib/Anim.c $(HEADS)
|
||||
$(CC) -c GameLib/Anim.c -o $(BUILDDIR)/GameLib/Anim.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/GameLib.o: GameLib/GameLib.c $(HEADS)
|
||||
$(CC) -c GameLib/GameLib.c -o $(BUILDDIR)/GameLib/GameLib.o $(CFLAGS)
|
||||
|
||||
|
||||
##############
|
||||
# Game Rules #
|
||||
##############
|
||||
|
||||
$(BUILDDIR)/Game/GameEnts.o: Game/GameEnts.c $(HEADS)
|
||||
$(CC) -c Game/GameEnts.c -o $(BUILDDIR)/Game/GameEnts.o $(CFLAGS)
|
||||
|
||||
$(BUILDDIR)/Game/GameMap.o: Game/GameMap.c $(HEADS)
|
||||
$(CC) -c Game/GameMap.c -o $(BUILDDIR)/Game/GameMap.o $(CFLAGS)
|
||||
|
||||
$(BUILDDIR)/Game/main.o: Game/main.c $(HEADS)
|
||||
$(CC) -c Game/main.c -o $(BUILDDIR)/Game/main.o $(CFLAGS)
|
||||
|
||||
|
||||
################
|
||||
# Result Rules #
|
||||
################
|
||||
|
||||
$(RES_GAMELIB_OUT): $(GAMELIBS_OBJS)
|
||||
$(AR) rcs $(RES_GAMELIB_OUT) $(GAMELIBS_OBJS)
|
||||
|
||||
$(RES_GAME_OUT): $(RES_GAMELIB_OUT) $(GAME_OBJS)
|
||||
$(CC) $(GAME_OBJS) $(RES_GAMELIB_OUT) -o $(RES_GAME_OUT) $(LIBS) $(CFLAGS) $(LDFLAGS)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
########################
|
||||
# GameLib Declarations #
|
||||
########################
|
||||
CFLAGS += -IGameLib
|
||||
GAMELIB_HEADS = \
|
||||
GameLib/Time.h \
|
||||
GameLib/Util.h \
|
||||
GameLib/QuadArray2D.h \
|
||||
GameLib/Draw.h \
|
||||
GameLib/Input.h \
|
||||
GameLib/Audio.h \
|
||||
GameLib/Anim.h \
|
||||
GameLib/Entity.h \
|
||||
GameLib/GameLib.h
|
||||
GAMELIBS_OBJS = \
|
||||
$(BUILDDIR)/GameLib/Time.o \
|
||||
$(BUILDDIR)/GameLib/Util.o \
|
||||
$(BUILDDIR)/GameLib/QuadArray2D.o \
|
||||
$(BUILDDIR)/GameLib/Draw.o \
|
||||
$(BUILDDIR)/GameLib/Input.o \
|
||||
$(BUILDDIR)/GameLib/Audio.o \
|
||||
$(BUILDDIR)/GameLib/Anim.o \
|
||||
$(BUILDDIR)/GameLib/Entity.o \
|
||||
$(BUILDDIR)/GameLib/GameLib.o
|
||||
RES_GAMELIB_OUT = $(BUILDDIR)/$(RES_GAMELIB)
|
||||
|
||||
#####################
|
||||
# Game Declarations #
|
||||
#####################
|
||||
GAME_HEADS = $(GAMELIB_HEADS) Game/GameEnts.h Game/GameMap.h
|
||||
GAME_OBJS = \
|
||||
$(BUILDDIR)/Game/GameEnts.o \
|
||||
$(BUILDDIR)/Game/GameMap.o \
|
||||
$(BUILDDIR)/Game/main.o
|
||||
RES_GAME_OUT = $(BUILDDIR)/$(RES_GAME)
|
||||
|
||||
|
||||
#################
|
||||
# General Rules #
|
||||
#################
|
||||
all: $(BUILDDIR) $(RES_GAME_OUT)
|
||||
|
||||
$(BUILDDIR):
|
||||
$(MKDIR) $(BUILDDIR)
|
||||
$(MKDIR) $(BUILDDIR)/GameLib
|
||||
$(MKDIR) $(BUILDDIR)/Game
|
||||
|
||||
clean:
|
||||
$(RM) $(GAMELIBS_OBJS) $(RES_GAMELIB_OUT) $(GAME_OBJS) $(RES_GAME_OUT)
|
||||
|
||||
run: $(BUILDDIR) $(RES_GAME_OUT)
|
||||
$(LAUNCHER) ./$(RES_GAME_OUT) debug
|
||||
|
||||
rebuild: clean all
|
||||
|
||||
#################
|
||||
# GameLib Rules #
|
||||
#################
|
||||
$(BUILDDIR)/GameLib/Time.o: GameLib/Time.c $(HEADS)
|
||||
$(CC) -c GameLib/Time.c -o $(BUILDDIR)/GameLib/Time.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/Util.o: GameLib/Util.c $(HEADS)
|
||||
$(CC) -c GameLib/Util.c -o $(BUILDDIR)/GameLib/Util.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/QuadArray2D.o: GameLib/QuadArray2D.c $(HEADS)
|
||||
$(CC) -c GameLib/QuadArray2D.c -o $(BUILDDIR)/GameLib/QuadArray2D.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/Draw.o: GameLib/Draw.c $(HEADS)
|
||||
$(CC) -c GameLib/Draw.c -o $(BUILDDIR)/GameLib/Draw.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/Input.o: GameLib/Input.c $(HEADS)
|
||||
$(CC) -c GameLib/Input.c -o $(BUILDDIR)/GameLib/Input.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/Audio.o: GameLib/Audio.c $(HEADS)
|
||||
$(CC) -c GameLib/Audio.c -o $(BUILDDIR)/GameLib/Audio.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/Entity.o: GameLib/Entity.c $(HEADS)
|
||||
$(CC) -c GameLib/Entity.c -o $(BUILDDIR)/GameLib/Entity.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/Anim.o: GameLib/Anim.c $(HEADS)
|
||||
$(CC) -c GameLib/Anim.c -o $(BUILDDIR)/GameLib/Anim.o $(CFLAGS)
|
||||
$(BUILDDIR)/GameLib/GameLib.o: GameLib/GameLib.c $(HEADS)
|
||||
$(CC) -c GameLib/GameLib.c -o $(BUILDDIR)/GameLib/GameLib.o $(CFLAGS)
|
||||
|
||||
|
||||
##############
|
||||
# Game Rules #
|
||||
##############
|
||||
|
||||
$(BUILDDIR)/Game/GameEnts.o: Game/GameEnts.c $(HEADS)
|
||||
$(CC) -c Game/GameEnts.c -o $(BUILDDIR)/Game/GameEnts.o $(CFLAGS)
|
||||
|
||||
$(BUILDDIR)/Game/GameMap.o: Game/GameMap.c $(HEADS)
|
||||
$(CC) -c Game/GameMap.c -o $(BUILDDIR)/Game/GameMap.o $(CFLAGS)
|
||||
|
||||
$(BUILDDIR)/Game/main.o: Game/main.c $(HEADS)
|
||||
$(CC) -c Game/main.c -o $(BUILDDIR)/Game/main.o $(CFLAGS)
|
||||
|
||||
|
||||
################
|
||||
# Result Rules #
|
||||
################
|
||||
|
||||
$(RES_GAMELIB_OUT): $(GAMELIBS_OBJS)
|
||||
$(AR) rcs $(RES_GAMELIB_OUT) $(GAMELIBS_OBJS)
|
||||
|
||||
$(RES_GAME_OUT): $(RES_GAMELIB_OUT) $(GAME_OBJS)
|
||||
$(CC) $(GAME_OBJS) $(RES_GAMELIB_OUT) -o $(RES_GAME_OUT) $(LIBS) $(CFLAGS) $(LDFLAGS)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,63 +1,63 @@
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
################## ##
|
||||
###############
|
||||
#############
|
||||
#############
|
||||
##############
|
||||
########## ###
|
||||
######### ###
|
||||
######## P ##
|
||||
######## ##
|
||||
######## ## |||||
|
||||
########
|
||||
#########
|
||||
##########
|
||||
###########
|
||||
############
|
||||
#############
|
||||
######## ## #
|
||||
######### ###
|
||||
######## ## #
|
||||
#############
|
||||
#############
|
||||
########
|
||||
##########
|
||||
########
|
||||
###########
|
||||
########
|
||||
########
|
||||
############
|
||||
########
|
||||
#############
|
||||
########
|
||||
########
|
||||
######## #
|
||||
######## #
|
||||
########
|
||||
########
|
||||
########
|
||||
########
|
||||
#########
|
||||
########
|
||||
########
|
||||
#########
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
################## ##
|
||||
###############
|
||||
#############
|
||||
#############
|
||||
##############
|
||||
########## ###
|
||||
######### ###
|
||||
######## P ##
|
||||
######## ##
|
||||
######## ## |||||
|
||||
########
|
||||
#########
|
||||
##########
|
||||
###########
|
||||
############
|
||||
#############
|
||||
######## ## #
|
||||
######### ###
|
||||
######## ## #
|
||||
#############
|
||||
#############
|
||||
########
|
||||
##########
|
||||
########
|
||||
###########
|
||||
########
|
||||
########
|
||||
############
|
||||
########
|
||||
#############
|
||||
########
|
||||
########
|
||||
######## #
|
||||
######## #
|
||||
########
|
||||
########
|
||||
########
|
||||
########
|
||||
#########
|
||||
########
|
||||
########
|
||||
#########
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
######################
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ case "$uname" in
|
||||
cflags="-Dmain=SDL_main -lmingw32 -lSDLmain -lSDL -mwindows -g"
|
||||
builddir="build-mingw"
|
||||
platform="win32"
|
||||
exeextension=".exe"
|
||||
;;
|
||||
*EMSCRIPTEN*)
|
||||
# Configuracion de Emscripten
|
||||
@@ -27,6 +28,7 @@ case "$uname" in
|
||||
cflags="-s FULL_ES2=1 -s ASM_JS=1 -Wno-implicit-function-declaration"
|
||||
builddir="build-emscripten"
|
||||
platform="emscripten"
|
||||
exeextension=".html"
|
||||
;;
|
||||
*)
|
||||
# Configuracion de Linux
|
||||
@@ -34,6 +36,7 @@ case "$uname" in
|
||||
cflags="-Wall -g -I/usr/include/ -I/usr/include/SDL/ -I/usr/X11R6/include/"
|
||||
builddir="build-linux-$unamem"
|
||||
platform="linux-$unamem"
|
||||
exeextension=""
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -63,6 +66,9 @@ while test $# -gt 0; do
|
||||
--platform)
|
||||
echo "$platform"
|
||||
;;
|
||||
--exe-extension)
|
||||
echo "$exeextension"
|
||||
;;
|
||||
*)
|
||||
echo "${usage}" 1>&2
|
||||
exit 1
|
||||
|
||||
Reference in New Issue
Block a user