2. 设置下环境变量, 然后用Qt embedded linux 库交叉编译应用程序
3. 然后把程序和程序运行所需要的库(如:QtCore.dll)下载到板子上, 然后运行即可
在百度上看到的一个贪吃蛇游戏includeltiostream.h
includeltwindows.h
includelttime.h
includeltstdlib.h
includeltconio.h
define N 21
void gotoxy(int x,int y)//位置函数
{
COORD pos
pos.X=2*x
pos.Y=y
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos)
}
void color(int a)//颜色函数
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a)
}
void init(int apple[2])//初始化函数(初始化围墙、显示信息、苹果)
{
int i,j//初始化围墙
int wall[N+2][N+2]={{0}}
for(i=1ilt=Ni++)
{
for(j=1jlt=Nj++)
wall[i][j]=1
}
color(11)
for(i=0iltN+2i++)
{
for(j=0jltN+2j++)
{
if(wall[i][j])
coutltlt■
else coutltlt□
}
coutltltendl
}
gotoxy(N+3,1)//显示信息
color(20)
coutltlt按 W S A D 移动方向ltltendl
gotoxy(N+3,2)
color(20)
coutltlt按任意键暂停ltltendl
gotoxy(N+3,3)
color(20)
coutltlt得分:ltltendl
apple[0]=rand()%N+1//苹果
apple[1]=rand()%N+1
gotoxy(apple[0],apple[1])
color(12)
coutltlt●ltltendl
}
int main()
{
int i,j
int** snake=NULL
int apple[2]
int score=0
int tail[2]
int len=3
char ch=p
srand((unsigned)time(NULL))
init(apple)
snake=(int**)realloc(snake,sizeof(int*)*len)
for(i=0iltleni++)
snake[i]=(int*)malloc(sizeof(int)*2)
for(i=0iltleni++)
{
snake[i][0]=N/2
snake[i][1]=N/2+i
gotoxy(snake[i][0],snake[i][1])
color(14)
coutltlt★ltltendl
}
while(1)//进入消息循环
{
tail[0]=snake[len-1][0]
tail[1]=snake[len-1][1]
gotoxy(tail[0],tail[1])
color(11)
coutltlt■ltltendl
for(i=len-1i0i--)
{
snake[i][0]=snake[i-1][0]
snake[i][1]=snake[i-1][1]
gotoxy(snake[i][0],snake[i][1])
color(14)
coutltlt★ltltendl
}
if(kbhit())
{
gotoxy(0,N+2)
ch=getche()
}
switch(ch)
{
case w:snake[0][1]--break
case s:snake[0][1]++break
case a:snake[0][0]--break
case d:snake[0][0]++break
default: break
}
gotoxy(snake[0][0],snake[0][1])
color(14)
coutltlt★ltltendl
Sleep(abs(200-0.5*score))
if(snake[0][0]==apple[0]snake[0][1]==apple[1])//吃掉苹果后蛇分数加1,蛇长加1
{
score++
len++
snake=(int**)realloc(snake,sizeof(int*)*len)
snake[len-1]=(int*)malloc(sizeof(int)*2)
apple[0]=rand()%N+1
apple[1]=rand()%N+1
gotoxy(apple[0],apple[1])
color(12)
coutltlt●ltltendl
gotoxy(N+5,3)
color(20)
coutltltscoreltltendl
}
if(snake[0][1]==0snake[0][1]==Nsnake[0][0]==0snake[0][0]==N)//撞到围墙后失败
{
gotoxy(N/2,N/2)
color(30)
coutltltGame overltltendl
for(i=0iltleni++)
free(snake[i])
Sleep(INFINITE)
exit(0)
}
}
return 0
}
目录
2 开发环境 1
3 开发工具 1
4 完成时间 1
5 设计思想 1
5.1 游戏的组成 1
5.2 游戏设计要点 1
5.3游戏的主内容分析 2
5.4初始排列方式的分析 2
5.5游戏核心元素的分析 2
5.6游戏 *** 作的分析 3
5.7游戏胜负判断的分析 3
6 设计过程及设计步骤 3
6.1 游戏总体设计 3
6.2 主场景 4
6.2.1 设置游戏主场景配置 4
6.2.2 设置背景图片 6
6.2.3 创建开始按钮 7
6.2.4 开始按钮跳跃特效实现 10
6.2.5 创建选择关卡场景 11
6.2.6 点击开始按钮进入选择关卡场景 12
6.3 选择关卡场景 13
6.3.1 场景基本设置 13
6.3.2 背景设置 14
6.3.3 返回按钮 16
6.3.4 创建选择关卡按钮 16
6.3.5 创建翻金币场景 17
6.4 翻金币场景 19
6.4.1 场景基本设置 19
6.4.2 背景设置 19
6.4.3 返回按钮 20
6.4.4 显示当前关卡 21
6.4.5 创建金币背景图片 22
6.4.6 创建金币类 23
6.5 引入关卡数据 26
6.5.1 添加现有文件dataConfig 26
6.5.2 添加现有文件 27
6.5.3 完成添加 27
6.5.4 数据分析 28
6.5.5 测试关卡数据 28
6.7 初始化各个关卡 29
6.8 翻金币特效 31
6.8.1 MyCoin类扩展属性和行为 31
6.8.2 创建特效 32
6.8.3 禁用按钮 34
6.9 翻周围金币 36
6.10 判断是否胜利 37
6.11 胜利图片显示 38
6.12 胜利后禁用按钮 39
6.13 音效添加 39
6.13.1 开始音效 39
6.13.2 选择关卡音效 40
6.13.3 返回按钮音效 40
6.14 优化项目 41
6.15 打包项目 42
6.15.1 绿色版本 42
6.15.2 标准版本 42
7 测试运行 43
7.1 主场景 43
7.2 选择关卡场景 43
7.3 翻金币场景 44
7.4 游戏胜利场景 45
8 评价与修订 46
9设计体会 48
参 考 文 献 49
附 录 50
致 谢 54
1 设计题目
基于QT实现的翻金币游戏
2 开发环境
硬件环境:微机系列,内存在1G以上
软件环境:Microsoft Windows 10家庭版
3 开发工具
Qt Creator 4.11、HM NIS、NSIS(客户端打包程序)
4 完成时间
2020.6.1----2020.6.12
5 设计思想
5.1 游戏的组成
我认为游戏的组成主要是两个部分:游戏资源和游戏机制。
游戏资源泛指游戏中给用户提供的视听资源,比如游戏的场景,各种道具和角色的外观,游戏音乐,与用户进行交互的界面等。
游戏机制泛指游戏中实现游戏运作的方式,在翻金币小游戏中,怎么排列金币,如何翻转金币,如何判断游戏的胜利与失败,这种对于用户来讲相对隐式的存在却在游戏开发中占据核心地位。游戏机制的实现通常需要数据结构与相关算法的结合。
5.2 游戏设计要点
再设计游戏时,因为此项目窗口较多,因此在对于各个窗口的选择上是一个比较需要注意的地方。在初始化各种窗口的时候,是选择QMainWindow,Qwidget,还是QDialog类型呢?这个主要看该窗口的功能,如果作为主窗口(比如交互窗口,游戏窗口)存在的话,选择QMainWindow类型最合适,因为QMainWindow可以搭载工具栏和状态栏,这些功能选择组件在小游戏里面是很实用的(尤其是工具栏)。
至于QDialog则用于对话窗口,单方向地由软件向用户发送信息,一般不做交互,游戏的游戏说明,提示,警告都适合使用QDialog类型。
QWidget适合用来自定义组件,这次的项目中没有组合类的自定义组件,因此没有使用。该项目中自定义的是单个类型的组件(新的按钮),所以直接去继承QT里面的button类就可以了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)