C++ 开发的第一款游戏
来源:互联网 发布:android tomcat mysql 编辑:程序博客网 时间:2024/04/27 23:27
从iOS转入游戏行业,转眼间一个月了,十几天完成了自己的第一款小游戏。感觉还是有点不适应的,从编程语言到编译工具等,用惯了苹果电脑,突然转到Windows下,好多都不习惯了。
首先,从编程工具说起,vs2010说起来不陌生,大学学习那会儿用过。毕业后就没怎么用过,好多东西都不会,对于新手了来说,那就是两眼一抹黑,不懂咋办呢?问度娘呗,问同事。记一些常用的快捷键,对于编程还是很有好处的。
谈谈游戏吧,做的这款游戏是一个多人玩的游戏,摇骰子押大小。
上面这个UI整体效果图,一开始接手这个项目完全懵逼的,不知道从哪里下手。想了半天,分析各种问题。一开始就觉得中奖区域好难算,根据3个骰子的随机值,算出来。开始写的算法,逻辑用了200多行代码来完成。这个游戏个人感觉最难的就是根据骰子随机值算出中奖区域,以及那些中奖了,什么赔率。在此处附上我写的根据骰子随机值计算中奖区域代码:
void CServerGameDesk::GetDiceLottery(BYTE dice[3]){ BYTE arrayHe[14]; BYTE arrayDouble[6]; BYTE arrayThree[6]; //int arrayLottry[7] = {0}; int i; //单骰 for (i = 0;i < 3;i++) { m_LottryArea[i] = dice[i]; } //骰子和 BYTE sumDice = dice[0]+ dice[1] + dice[2]; for ( i = 0;i < 14;i++) { arrayHe[i] = 7+i; } if (((sumDice-4) >= 0) && ((sumDice-4)<=13)){ m_LottryArea[3] = arrayHe[sumDice - 4]; }else{ m_LottryArea[3] = 0; } //双骰 for (i = 0;i < 6;i++) { arrayDouble[i] = 21 + i; } if ((dice[0] == dice[1]) || (dice[0] == dice[2])|| (dice[1] == dice[2])) { if ((dice[0] == dice[1])) { m_LottryArea[4] = arrayDouble[dice[0]-1]; } if ((dice[1] == dice[2])) { m_LottryArea[4] = arrayDouble[dice[1]-1]; } if ((dice[0] == dice[2])) { m_LottryArea[4] = arrayDouble[dice[0]-1]; } }else{ m_LottryArea[4] = 0; } //骰子大小 if ((sumDice >= 4) && (sumDice <= 10)) { m_LottryArea[6] = 34; } else { m_LottryArea[6] = BET_AREA; } //三骰(围骰) for (i = 0;i < 6;i++) { arrayThree[i] = 27 + i; } if ((dice[0] == dice[1]) && (dice[0] == dice[2])) { m_LottryArea[5] = arrayThree[dice[0]-1]; m_LottryArea[7] = 33; m_LottryArea[6] = 0; }else{ m_LottryArea[5] = 0; }}
这是说说当时的想法,把中奖区域分为8块。单骰(用3个区域表示)、骰和、大小、双骰、全骰、围骰。在根据每个区域定义的枚举类型的值来算出随机骰子出现的中奖区域。
定义的枚举类型如下:
//下注区域类型enum BetType{ // 单点 BET_TYPE_SINGLE_1 = 1, BET_TYPE_SINGLE_2 = 2, BET_TYPE_SINGLE_3 = 3, BET_TYPE_SINGLE_4 = 4, BET_TYPE_SINGLE_5 = 5, BET_TYPE_SINGLE_6 = 6, // 骰子的和数 BET_TYPE_SUM_4 = 7, BET_TYPE_SUM_5, BET_TYPE_SUM_6, BET_TYPE_SUM_7, BET_TYPE_SUM_8, BET_TYPE_SUM_9, BET_TYPE_SUM_10, BET_TYPE_SUM_11, BET_TYPE_SUM_12, BET_TYPE_SUM_13, BET_TYPE_SUM_14, BET_TYPE_SUM_15, BET_TYPE_SUM_16, BET_TYPE_SUM_17, // 双骰 BET_TYPE_DOUBLE_1 = 21, BET_TYPE_DOUBLE_2 = 22, BET_TYPE_DOUBLE_3 = 23, BET_TYPE_DOUBLE_4 = 24, BET_TYPE_DOUBLE_5 = 25, BET_TYPE_DOUBLE_6 = 26, // 围骰 BET_TYPE_THREE_1 = 27, BET_TYPE_THREE_2 = 28, BET_TYPE_THREE_3 = 29, BET_TYPE_THREE_4 = 30, BET_TYPE_THREE_5 = 31, BET_TYPE_THREE_6 = 32, // 全围 BET_TYPE_ALL = 33, // 大 BET_TYPE_MAX = 35, //小 BET_TYPE_MIN = 34, };
一个游戏做下来,感觉基础东西很重要,在这个游戏开发中,主要用到很多基础的数据类型,外加一些STL基本库的几种基本类型(vector,deque);
O(∩_∩)O就扯这么多了,赶紧搬砖去/(ㄒoㄒ)/~~
0 0
- C++ 开发的第一款游戏
- 【游戏架构分享】我是怎么开发第一款游戏的
- 我开发的第一款HTML5游戏《驴子跳》
- 创建你的第一款Phaser游戏
- 第一款游戏
- [转]我开发的第一款HTML5游戏《驴子跳》源码
- 我的第一款J2ME游戏:美女五子棋
- 用Construct2制作你的第一款游戏
- 一款有趣的游戏
- 怎样去开发一款游戏
- 我是如何从0开始,在23天里完成一款Android游戏开发的 – Part 2 – 第3至第5天
- 我是如何从0开始,在23天里完成一款Android游戏开发的 – Part3 – 第6至第8天
- 我是如何从0开始,在23天里完成一款Android游戏开发的 – Part4 – 第9至第11天
- 我是如何从0开始,在23天里完成一款Android游戏开发的 – Part5– 第12至第14天
- 我是如何从0开始,在23天里完成一款Android游戏开发的 – Part6– 第15至第17天
- 我是如何从0开始,在23天里完成一款Android游戏开发的 – Part7– 第18至第20天
- 我是如何从0开始,在23天里完成一款Android游戏开发的 – Part8– 第21至第23天
- C++のWindows游戏开发 第一天
- 网站渗透思路全方面总结(针对新手思路介绍)
- android新特性:商城首页一键回到顶部功能实现(包括ListView, RecyclerView 和 ScrollView)
- Linux基本命令-目录结构及文件基本操作
- 剑指offer 面试题42 翻转单词顺序
- JAVASE学习(16)线程
- C++ 开发的第一款游戏
- Spring boot对hibernate建表(mysql)
- EXCEL_01
- linux下jdk的安装
- Atitit GRASP(General Responsibility Assignment Software Patterns),中文名称为“通用职责分配软件模式”
- 一个图片切换功能
- HDU-1010(DFS+奇偶剪枝)
- django的apache部署
- 关于 WinForm中webbrowser控件的使用