资源简介
模仿QQ堂的SDL编写的linux下的小游戏
代码片段和文件信息
#include
#include
#include
#include
//图片路径定义
#define IMG_Player1 “image/boy2.bmp“ //“image/player.png“
#define IMG_INJURED “image/boy2_injured.bmp“
#define IMG_BUBBLE “image/bomb.png“ //“image/bubble.bmp“
#define IMG_BG “image/bg4.bmp“
#define IMG_FLAME2 “image/flame2.png“
#define IMG_FLAME4 “image/flame4.png“
#define IMG_GAMEOVER “image/gameover.gif“
#define IMG_MEDICINE “pics/medicine.bmp“
#define IMG_SHOES “pics/shoe.bmp“
#define IMG_LIFE “./pics/time.gif“
#define IMG_SPEED “./pics/time.gif“
//方向定义
#define DIR_UP 3
#define DIR_LEFT 1
#define DIR_DOWN 0
#define DIR_RIGHT 2
#define MAIN_ZONE_W 520
#define MAIN_ZONE_H 480
#define ATTACK 2
#define INTERVAL 30
#define BUBBLE_NUM 62
#define RAND_MAX 65536
#define WaitTime 10
#define ExistTime 5
//游戏中的人物
typedef struct _Player {
int w;
int h;
int x;
int y;
int ox;
int oy;
int dir;
int subframe;
int speed;
int life;
int timer;
SDL_Surface *image;
}Player;
typedef struct _Bubble {
int w;
int h;
int x;
int y;
int subframe;
int timer;
int level;
SDL_Surface *image;
}Bubble;
//各种附加工具的添加 此处用1代表是药炉 可添加一条命
//此处用0代表是鞋 可使速度加1
typedef struct _Tool{
int w;
int h;
int x;
int y;
int type;//0是鞋 1是药炉
int already_exist_time;//代表已经出现的时间
int WaitForNext;//代表下一个物品出现的时间还有多久
int flag;//代表是否有效
SDL_Surface *image[2];
}Tool;
//游戏状态
typedef enum _GameState {
GAME_RUNNING
GAME_OVER
}GameState;
//全局变量
int second[2]minute[2];
SDL_Surface *screen; //整个屏幕
SDL_Surface *back_image;
SDL_Surface *player_image;
SDL_Surface *injured_image;
SDL_Surface *medicine_image;
SDL_Surface *shoes_image;
SDL_Surface *life_image;
SDL_Surface *speed_image;
GameState game_state;
Player player1;
Bubble bubble[BUBBLE_NUM];
Tool MedOrShoes;
int current_num;
int boom; //当前屏幕上是否有泡泡
int erase;
int injured;
int g_timer=-1;
int away;
int interval=5;
int oldlife=3;
int oldspeed;
//加锁
void Slock(SDL_Surface *lock){
if(SDL_MUSTLOCK(lock)){
if(SDL_LockSurface(lock)<0){
return;
}
}
}
/*解锁*/
void Sulock(SDL_Surface *lock){
if(SDL_MUSTLOCK(lock)){
SDL_UnlockSurface(lock);
}
}
//初始化SDL
void Init_SDL() {
if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0) {
exit(1);
}
screen = SDL_SetVideoMode(64048016SDL_SWSURFACE);
if(screen == NULL) {
exit(1);
}
}
//Tool函数初始化
void Init_Tools(){
MedOrShoes.x=0;
MedOrShoes.y=0;
MedOrShoes.w=30;
MedOrShoes.h=30;
MedOrShoes.type=0;//最先初始化为鞋
MedOrShoes.flag=0;//最初无效
MedOrShoes.already_exist_time=0;//出险多于..s还没被吃掉则擦掉
MedOrShoes.WaitForNext = WaitTime;//每..s出现一个物品
medicine_image = IMG_Load(IMG_MEDICINE);
medicine_image = SDL_DisplayFormat(medicine_image);
shoes_image = IMG_Load(IMG_SHOES);
shoes_image = SDL_DisplayFormat(shoes_image);
MedOrShoes.image[0]=shoes_image;
MedOrShoes.image[1]=medicine_image;
SDL_SetColorKey(MedOrShoes.image[0]SDL_SRCCOLORKEYSDL_MapRGB(MedOrShoes.image[0]->format255255255));
SDL_SetColorKey(MedOrShoes.image[1]SDL_SRCCOLORKEYSDL_MapRGB(MedOrShoes.image[1]->f
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 20988 2006-11-30 09:55 game\bm
文件 14152 2006-11-30 09:52 game\bm.c~
文件 19853 2008-12-02 20:59 game\bubbleman.c
文件 19852 2008-12-02 20:58 game\bubbleman.c~
文件 14798 2006-11-30 07:51 game\bubbleman1.c~
文件 13457 2006-11-25 20:41 game\sdl
文件 1111 2006-11-25 18:30 game\sdl.c
文件 1109 2006-11-25 18:28 game\sdl.c~
文件 25065 2008-12-02 20:59 game\aaa
文件 11810 2006-11-30 09:17 game\bak\bubbleman.c
文件 11812 2006-11-30 07:50 game\bak\bubbleman.c~
文件 14798 2006-11-30 07:53 game\bak\bubbleman1.c
文件 1378 2007-08-29 08:30 game\image\baby.gif
文件 153718 2006-11-29 15:58 game\image\bg.bmp
文件 921654 2006-11-29 17:05 game\image\bg2.bmp
文件 921654 2006-11-29 17:07 game\image\bg3.bmp
文件 921654 2008-03-10 14:03 game\image\bg4.bmp
文件 10989 2006-11-29 10:35 game\image\bomb.png
文件 21654 2006-11-28 23:14 game\image\boy2.bmp
文件 8278 2006-11-29 21:07 game\image\boy2_injured.bmp
文件 2814 2006-11-28 23:36 game\image\bubble.bmp
文件 1674 2008-11-25 20:37 game\image\bubble.png
文件 5654 2006-11-29 11:32 game\image\flame.bmp
文件 7937 2006-11-29 14:50 game\image\flame.png
文件 2814 2006-11-29 13:19 game\image\flame2.bmp
文件 31389 2007-09-01 10:05 game\image\game.gif
文件 206909 2007-08-29 08:30 game\image\gameover.gif
文件 1674 2008-11-25 20:37 game\image\pla
文件 425 2007-09-01 10:05 game\image\time.gif
文件 63744 2008-03-12 20:52 game\image\flame4.png
............此处省略17个文件信息
- 上一篇:多重分形文章与代码
- 下一篇:Windows内核原理与实现 微软对高校提供的系统源码
相关资源
- linux下基于socket和curses的双人弹球游戏
- linux网络聊天室
- 使用RTMPdump(libRTMP)直播来自v4l2的摄
- Linux+man中文手册
- Linux典藏大系之Linux系统移植第2版
- 嵌入式系统设计与应用 基于ARM Cort
- linux_syscall_support.h_2016/12/20
- Linux中nginx安装相关资源包
- Linux驱动模块单独编译Makefile
- Linux 进程控制与进程互斥附实验报告
- linux下socket can 编程详解
- 嵌入式Linux驱动开发基础总结
- DES 纯c实现(des.c和des.h) 含pkcs1填充
- Linux基础教程.ppt
-
Jli
nk_Linux_V422.zip - Atollic_TrueSTUDIO_for_STM32_v9.0.1_20180420-1
- 安装linux后的mbr修复工具(含64位)
- 动手做一个迷你型Linux操作系统
- Linux安装weblogic12详细步骤
- ncompress-4.2.4-54.el6_2.1.x86_64.rpm
- MT7601(小度wifi360wifimiwif) staap linux驱
- 《嵌入式Linux系统开发标准教程》第
- 基于Linux LQL流量控制系统的研究与实
- linux c 使用openssl实现SHA1WithRSA实现,签
- USB8152linux系统驱动包
- jpeglib读取jpeg,转为bmp图,24真彩和灰
- 北大青鸟Linux培训教材(完全版)LS
- rkispcamera
- linux音频驱动详解--宋宝华
- linux alsa源代码
评论
共有 条评论