Keep original end of line characters.

This commit is contained in:
2015-06-07 01:25:08 +02:00
committed by Valeriano A.R
parent 1404fb09b5
commit 92dbb7b1dd
9 changed files with 568 additions and 562 deletions

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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);
}

View File

@@ -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

View File

@@ -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);
}