社区
非技术区
帖子详情
求OpenGL小飞机游戏代码
weixin_38301463
2017-04-14 11:45:43
求OpenGL小飞机游戏代码,可以直接用的,不出错的,发到邮箱295638773@qq.com
...全文
411
1
打赏
收藏
求OpenGL小飞机游戏代码
求OpenGL小飞机游戏代码,可以直接用的,不出错的,发到邮箱295638773@qq.com
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Kelvin哥
2019-03-16
打赏
举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#define high 20
#define width 25
#define dfly_time 5
int quan[high][width]={0};
int fly_x,fly_y,turn,score;
int dfly_x[dfly_time],dfly_y[dfly_time];
int boss_xl,boss_cx,boss_x[10],boss_y[10],boss_yd,boss_tgyj;
int boss_zd_x,boss_zd_y;
void HideCursor() //清除闪动下标
{
CONSOLE_CURSOR_INFO cursor_info = {1,0};
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
}
void gotoxy(int x, int y) //跳转x,y坐标
{
COORD pos = {x,y};
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOut,pos);
}
void startup()
{
int i,j;
fly_x=high-2; //飞机相对x轴的位置
fly_y=width/2;//飞机相对y轴的位置
int k=0;
for(;k<dfly_time;k++)
{
dfly_x[k] = rand()%2;
dfly_y[k] = rand()%(width-1);
quan[dfly_x[k]][dfly_x[k]] = 2;
}
quan[fly_x][fly_y]=1; //我方飞机为1
turn=0; //检测是否退出游戏
score=0; //显示得分
boss_xl=250; //boss血量
boss_cx=0; //boss出现
boss_yd=1; //boss左右移动
boss_tgyj=0; //boss技能[同归于尽]
//boss体型
boss_x[0]=1;
boss_y[0]=12;
boss_x[1]=1;
boss_y[1]=11;
boss_x[2]=1;
boss_y[2]=10;
boss_x[3]=1;
boss_y[3]=13;
boss_x[4]=1;
boss_y[4]=14;
boss_x[5]=0;
boss_y[5]=12;
boss_x[6]=0;
boss_y[6]=11;
boss_x[7]=0;
boss_y[7]=13;
boss_x[8]=2;
boss_y[8]=11;
boss_x[9]=2;
boss_y[9]=13;
//boss子弹
boss_zd_x = boss_x[0]+1;
boss_zd_y = boss_y[0];
//墙
for(i=0;i<high;i++)
for(j=0;j<width;j++)
{
if(j==width-1)
quan[i][j]=4;
else if(i==high-1)
quan[i][j]=5;
}
}
void show()
{
int i,j;
gotoxy(0,0);
for(i=0;i<high;i++)
{ for(j=0;j<width;j++)
if(quan[i][j]==0) //o is kong ge
printf(" ");
else if(quan[i][j]==1) //1 is fly
printf("*");
else if(quan[i][j]==2) //2 is dfly
printf("@");
else if(quan[i][j]==3) //3 is zd
printf("|");
else if(quan[i][j]==4) //4 is qiang
printf("|");
else if(quan[i][j]==5) //5 is di ban
printf("-");
else if(quan[i][j]==6&&boss_cx==1) //6 is boss
printf("&");
printf("\n");
}
printf("击败敌机: [ %d ] 架\n",score);
if(boss_cx==1)
printf("boss血量: [ %d ] ",boss_xl);
}
void updatewithoutInput()
{
int i,j,b,k;
for(i=0;i<high;i++)
for(j=0;j<width;j++)
if(quan[i][j]==3)
{ //击中敌方飞机
for(k=0;k<dfly_time;k++)
{
if(i==dfly_x[k]&&j==dfly_y[k])
{
quan[dfly_x[k]][dfly_y[k]]=0;
score++;
dfly_x[k]=0;
dfly_y[k]=rand()%(width-1);
quan[dfly_x[k]][dfly_y[k]]=2;
}
}
//子弹击中boss
for(b=0;b<10;b++)
if(i==boss_x[i]+1&&j==boss_y[i])
{
boss_xl--;
}
//子弹击中我方飞机
if(i==fly_x&&j==fly_y)
turn=3;
//子弹上升
quan[i][j]=0;
if(i>0)
quan[i-1][j]=3;
}
//我方飞机被击中
for(k=0;k<dfly_time;k++)
{
if(dfly_x[k]==fly_x&&dfly_y[k]==fly_y)
turn=3;
//冲出屏幕
if(dfly_x[k]>high)
{
quan[dfly_x[k]][dfly_y[k]]=0;
dfly_x[k]=0;
dfly_y[k]=rand()%(width-1);
quan[dfly_x[k]][dfly_y[k]]=2;
}
}
//敌方飞机下降
static int n=0;
if(n<10)
n++;
if(n==10)
{
for(k=0;k<dfly_time;k++)
{
quan[dfly_x[k]][dfly_y[k]]=0;
dfly_x[k]++;
quan[dfly_x[k]][dfly_y[k]]=2;
n=0;
}
//boss左右移动
if(boss_cx==1&&boss_tgyj==0)
{
for(i=0;i<10;i++)
{
quan[boss_x[i]][boss_y[i]] = 0;
boss_y[i]+=boss_yd;
quan[boss_x[i]][boss_y[i]] = 6;
}
if(boss_y[2]==0)
boss_yd=-boss_yd;
if(boss_y[4]==width-1)
{
boss_yd=-boss_yd;
}
}
//boss移动[boss技能[同归于尽]]
if(boss_cx==1)
{
if(boss_xl<50)
{
for(i=0;i<10;i++)
{
quan[boss_x[i]][boss_y[i]] = 0;
boss_x[i]++;
}
boss_y[0]=fly_y;
boss_y[1]=fly_y-1;
boss_y[2]=fly_y-2;
boss_y[3]=fly_y+1;
boss_y[4]=fly_y+2;
boss_y[5]=fly_y;
boss_y[6]=fly_y-1;
boss_y[7]=fly_y+1;
boss_y[8]=fly_y-1;
boss_y[9]=fly_y+1;
for(i=0;i<10;i++)
{
quan[boss_x[i]][boss_y[i]] = 6;
}
boss_tgyj=1;
}
}
}
//boss摧毁我方飞机
for(i=0;i<10;i++)
{
if(boss_x[i]==fly_x&&boss_y[i]==fly_y)
turn=3;
}
//墙
for(i=0;i<high;i++)
for(j=0;j<width;j++)
{
if(j==width-1)
quan[i][j]=4;
else if(i==high-1)
quan[i][j]=5;
}
//boss出现
if(score>5)
{
boss_cx=1;
for(i=0;i<10;i++)
{
quan[boss_x[i]][boss_y[i]] = 6;
}
}
//游戏胜利
if(boss_xl==0)
turn=2;
//boss发射子弹
if(boss_cx==1&&boss_tgyj==0)
{
quan[boss_zd_x][boss_zd_y] = 0;
boss_zd_x++;
boss_zd_y = boss_y[0];
quan[boss_zd_x][boss_zd_y] = 3;
if(boss_zd_x==high)
boss_zd_x=2;
}
}
void updatewithInput()
{ char ch;
if(kbhit())
{
ch=getch();
//输入飞机上下左右
if(ch=='w'&&fly_x!=0)
{
quan[fly_x][fly_y]=0;
fly_x--;
quan[fly_x][fly_y]=1;
}
else if(ch=='s'&&fly_x!=high-2)
{ quan[fly_x][fly_y]=0;
fly_x++;
quan[fly_x][fly_y]=1;
}
else if(ch=='a'&&fly_y!=0)
{ quan[fly_x][fly_y]=0;
fly_y--;
quan[fly_x][fly_y]=1;
}
else if(ch=='d'&&fly_y!=width-2)
{ quan[fly_x][fly_y]=0;
fly_y++;
quan[fly_x][fly_y]=1;
}
else if(ch=='z')
turn=1;
if(ch=='j')
quan[fly_x-1][fly_y]=3;
}
}
void main()
{ int i,j;
HideCursor();
startup(); //初始化游戏数据
while(1) //开始游戏循环
{ show(); //显示游戏画面状态
updatewithoutInput(); //玩家输入无关的更新
updatewithInput(); //玩家输入有关的更新
if(turn) break; //退出游戏
}
system("cls");
for(i=0;i<10;i++)
printf("\n");
for(j=0;j<12;j++)
printf(" ");
if(turn==1)
{
printf("退出游戏成功-");
Sleep(1000);
}
else if(turn==2)
{
printf("您一共击毁了 : [ %d ] 架敌方飞机\n\n\t\t 恭喜您胜利了-",score);
Sleep(1000);
}
else
{
printf("你失败了-");
Sleep(1000);
}
}
C#+
OpenGL
开发3D小行星
游戏
源码.zip
用c# 和
OPenGl
开发的小
飞机
躲避小星星的
游戏
,可以学习和参考,里面有具体的
代码
实现.希望帮到你们哦.
Opengl
飞机
操作Camera类
在oepngl
游戏
编程的cameraRove基础上改的。将原Camera改成了模拟
飞机
操纵的Camera.仅实现了核心控制
代码
,仅仅只需小小完善就能应用于飞行射击类
游戏
的操作。本资源适合初学者。
游戏
中的操作: up/down 飞行中的前进和后退 left/right
飞机
倾侧角控制 A/D
飞机
航线改变角控制 W/S
飞机
螺旋角控制
代码
有点小问题~ 最新的,正确的
代码
在另外一篇资源中,这篇就给大家当给比较吧:)。
OpenGL
课程涵盖了
OpenGL
开发的方方面面,对开发中经常用到的开发知识点进行讲解,从实战的角度进行编码设计.第1章-环境建立第2章-基础图元第3章-三维世界第4章-纹理多彩世界第5章-显存的分配-优化第6章-场景控制第7章-光照-真实世界第8章-模型第9章-UI制作第10章-场景编辑器制作第11章-地形第12章-脚本引入-lua
老何炸
飞机
(源
代码
)
这是我早些时候编的小
游戏
,使用了
OPENGL
来画图,源
代码
里面还有拼音做函数名的,不好意思。但可以拿来大概学习下
OPENGL
在单文档视图的MFC中的使用。
TileCity_chung:3D
openGL
b3d汽车/城市/飞行/坦克模拟
游戏
-开源
Tilecity chung是Ogg提供的openb3d演示,它是城市建筑
游戏
中的免费汽车(添加了汽车/飞行/油箱模拟器+编辑,加载,保存地图+汽车交通+ gui窗口+高度图+赛车+房屋+树木+草+天穹+声音+表演增强+拍摄+小船+坦克+红灯+停止+灯+高度图编辑,保存,加载)。 它是用已编译的freebasic编写的,并使用openB3D(freebasic的开源blitzmax b3d
游戏
引擎)。 zip文件中包含源
代码
。可以在装有Windows 7的小型上网本上运行。创建地图文件(文本为64x64),并探索3D
openGL
城镇,那里有海,塔,道路,高速公路,土路,地势,树木,房屋,草,机场。 在城镇交通中驾驶汽车,与计算机汽车进行比赛,乘
飞机
飞往机场或跟随塞斯纳附近的其他飞行,驾驶坦克或将其击落。 使用集成的编辑器编辑地图,并立即查看您的3D创作。 支持
游戏
手柄和操纵杆
非技术区
15,440
社区成员
58,171
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章