资源简介
uif65d.zip
代码片段和文件信息
//坦克打飞机(双人网络对战版)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include //需要产生随机数,加载时间头文件
#include “SDL.h“
#ifdef macintosh //对导入数据时分隔符的控制
#define DIR_SEP “:“
#define DIR_CUR “:“
#else
#define DIR_SEP “/“
#define DIR_CUR ““
#endif
#define DATAFILE(X) DIR_CUR “data“ DIR_SEP X
#define frameS_PER_SEC 10 //每秒钟的帧数
#define cannon_SPEED 5 //大炮运动速度
#define MAX_SHOTS 2 //最多可以发射多少发炮弹
#define SHOT_SPEED 10 //炮弹的速度
#define MAX_airs 2 //最多出现多少架飞机
#define AIR_SPEED 5 //飞机的速度
#define AIR_ODDS (1*frameS_PER_SEC) //剩下的飞机数
#define EXPLODE_TIME 4 //爆炸时间
typedef struct { //对象结构体
int alive; //是否存活标志
int facing; //运动方向
int x y; //坐标
SDL_Surface *image; //图像指针
} object;
SDL_Surface *screen; //屏幕指针
SDL_Surface *background; //背景指针
object my_cannon; //大炮对象
object remote_cannon; //对手大炮对象
int reloading; //重新加载标志
object shots[MAX_SHOTS]; //炮弹对象
object airs[MAX_airs]; //飞机对象
object explosions[MAX_airs+1]; //爆炸对象
#define MAX_UPDATES 3*(1+MAX_SHOTS+MAX_airs)//最大更新次数
int numupdates = 0; //更新次数的变量
SDL_Rect srcupdate[MAX_UPDATES]; //源目标更新
SDL_Rect dstupdate[MAX_UPDATES]; //目标更新
struct blit { //定义快速重绘对象结构体
SDL_Surface *src;
SDL_Rect *srcrect;
SDL_Rect *dstrect;
} blits[MAX_UPDATES];
//定义 发射,坐,右 宏
#define CMD_SHOOT 1
#define CMD_LEFT 2
#define CMD_RIGHT 3
#define CMD_QUIT 4
#define CMD_CONNECT 5
#define SERVIP “127.0.0.1“ //服务器IP
#define SERVPORT 8888 /*服务器监听端口号*/
#define BACKLOG 1 /*最大同时连接请求数*/
#define STDIN 0 /*标准输入文件描述符*/
//网络通信相关变量
fd_set rfd_set wfd_set efd_set;/*被select()监视的读、写、异常处理的文件描述符集合*/
int ret; /*与client连接的结果*/
struct timeval timeout; /*本次select的超时结束时间*/
int serv_fd airs_fd;
int sin_size;
struct sockaddr_in serv_addr;/*本机地址信息客户地址信息*/
int cmd; //指令传输缓冲
int recvbytes;
void InitNetwork() //初始化网络
{
if ((serv_fd = socket(AF_INET SOCK_STREAM 0)) == -1) { /*错误检测*/
perror(“socket“);
exit(-1);
}
/* 填充 sockaddr结构 */
bzero(&serv_addr sizeof(struct sockaddr_in));
serv_addr.sin_family=AF_INET;
serv_addr.sin_port=htons(SERVPORT);
inet_aton(SERVIP &serv_addr.sin_addr);
/*serv_addr.sin_addr.s_addr=inet_addr(“192.168.0.101“);*/
if (connect(serv_fd (struct sockaddr *)&serv_addr sizeof(struct sockaddr)) == -1)
{
/*错误检测*/
perror(“connect“);
exit(1);
}
fcntl(serv_fd F_SETFD O_NONBLOCK);
cmd = 5;
send(serv_fd &cmd sizeof(cmd) 0);
usleep(100 * 1000); //延时100毫秒,等待服务端飞机传输套接字初始化完毕
}
SDL_Surface *LoadImage(char *datafile) //加载图片函数
{
SDL_Surface *image *surface;
image = SDL_LoadBMP(datafile); //用SDL_LoadBMP()函数加载图片
if ( image == NULL )
{
fprintf(stderr “Couldn‘t load image %s: %s\n“
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-07-21 10:36 新建文件夹\
目录 0 2014-07-21 10:35 新建文件夹\data\
文件 29070 2008-08-26 00:33 新建文件夹\data\air.bmp
文件 915894 2008-08-26 00:33 新建文件夹\data\background.bmp
文件 12986 2008-08-26 00:33 新建文件夹\data\cannon.bmp
文件 18110 2008-08-26 00:33 新建文件夹\data\explosion.bmp
文件 3694 2008-08-26 00:33 新建文件夹\data\shot.bmp
文件 18950 2014-07-21 10:35 新建文件夹\game_c.c
文件 19880 2014-07-21 10:35 新建文件夹\game_s.c
文件 197 2014-07-21 10:40 新建文件夹\游戏说明.txt
- 上一篇:pl/0编译器 语法分析
- 下一篇:linux my_ls
相关资源
- 黑客工具包大全.doc
- 刺激战场人物加速方框透视成品源码
- 最新GJB9001C-2017国军标整套程序文件包
- UJFS足球投注系统制作.zip
- perl-5.24.0.tar.gz
- 黑客锁机源码.rar
- 增长黑客.pdf
- 最新GJB9001C:2017国军标一整套程序文
- oaid_sdk_1.0.23.zip200578
- dizhi1.rar
- 白金假肉鸡上线器.zip
- X破解专版.rar
- 大作家.rar
- WINDOWS黑客编程技术详解-配套代码.z
- TheCalculusLifesaver.zip
- [黑客攻防技术宝典Web实战篇].Dafydd.
- 黑客攻防从入门到精通(黑客与反黑
- 小豪辅助源码大全.zip
- gcoapa.rar
- Main.zip184976
- 小旋风蜘蛛池x6.zip
- 图灵数学·统计学丛书42-概率论基础教
- 笛卡尔几何附《方法论》《探求真理
- 28749194政府大楼智能安防系统方案-2
- windows游戏编程大师技巧.part08.rar
- 控制论与科学方法论金观涛.pdf
- doudizhu.rar
- 服务器风云私服游戏网关.rar
- 2-数理统计学教程陈希孺编著2009中科
- 黑客之道漏洞发掘的艺术第2版.pdf
评论
共有 条评论