位置: 编程技术 - 正文

Bullet(cocos2dx)学习制作桌球游戏之前期准备

编辑:rootadmin

推荐整理分享Bullet(cocos2dx)学习制作桌球游戏之前期准备,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

使用cocos2dx结合bullet设计一款简陋的桌球游戏,就是为了回顾前期学过的bullet。

首先要把桌球游戏需要的基本资源准备好,个球,1个白球,1张台球桌,球杆可有可无。

先看看目前实现的效果

至于这张台球桌的模型,我是随便设计一下

当然这个模型只是为了加载raw文件(静态网&#;数据),为了使模型的贴图显示出来,

我使用Blender直接创建了一个Plane,然后将台球桌的贴图贴在Plane上,于是就能以假乱真的

实现一个台球桌

在游戏开始前,初始化物理环境,加载一张台球桌,设置相应的物理属性,按规则摆放好台球。

1.设置重力为(0.f, -9.8f, 0.f),以模拟真实的物理环境。

2.加载台球桌

首先将台球桌的贴图模型加载进游戏,设置相应的位置,

然后加载台球桌的物理网&#;,还记得PhysicisMesh3D吗,并调整好位置,

当然比较不好设置的就是台球桌的物理属性,什么摩擦系数啊,弹性系数啊,滚动摩擦系数啊

3.摆放台球

对于球来说摆放的顺序是这样的,在网上找的规则

黑8放在第三行的中间位置,白色的为全色球,黑色的为花色球。

可以这样设想,只要定义一个数组存放每个位置的球号就行了,

BALLS_NUMBER[0] = 1;

BALLS_NUMBER[1] = 2;

BALLS_NUMBER[2] = 9;

BALLS_NUMBER[3] = ;

BALLS_NUMBER[4] = 8;

BALLS_NUMBER[5] = 3;

BALLS_NUMBER[6] = 4;

BALLS_NUMBER[7] = ;

BALLS_NUMBER[8] = 5;

BALLS_NUMBER[9] = ;

BALLS_NUMBER[] = ;

BALLS_NUMBER[] = 6;

Bullet(cocos2dx)学习制作桌球游戏之前期准备

BALLS_NUMBER[] = ;

BALLS_NUMBER[] = ;

BALLS_NUMBER[] = 7;

球号是我自己按照规则随便放的。

下面就是如果将这些球放好,

假设每个球半径为0.f,球都在Y坐标为0的位置,那么关键就是如何确定每个球的

X,Z.台球摆放好无论多少行都是个等边三角形,以3行为例

先放置第一个球,以后每一行的第一个球都是按照蓝色箭头的方向放置,假设上为Z,右为X

那么第二行第一个球就是(ball[1].posX &#; ball.radius, ball[1].posZ &#; √3*ball.radius)

设方向向量为dir(ball.radius, 0, √3*ball.radius);

即ball[2].pos = ball[1].pos &#; dir

第三行就是ball[3].pos = ball[1].pos &#; dir * 2;

一次类推ball[n].pos = ball[1].pos &#; dir * (n-1);

对于同一行的第k个球就是同一行的第一个球.pos.x - 2 * radius;

看上面代码

根据提前的设计加载相应的球号。

ballPos = dir * i;

ballPos.x &#;= -1.f;

ballPos.z &#;= offsetZ;

设置每行第一个球的位置

最后就是加载白球,白球要特别独立出来

4.更新物理世界

每一帧都去更新实际上是很浪费资源的,当所有的球都不动时,其实没必要更新,但是只有不到个球,

性能不会影响,当游戏中出现大量的物体时,就要重载btMotionState,这个以后讨论。

5.测试一下

当点击屏幕是给白球施加一个冲量,记住一定要先唤醒物体,不然不会有效果的

_whiteBallBody->setActivationState(ACTIVE_TAG);

_whiteBallBody->applyCentralImpulse(btVector3(0.f, 0.f, -.5f));

总结:

不是美工,模型什么的设计很费劲,贴图都是网上找的。

台球桌,台球的物理属性,调整麻烦,目前调整的还不好

对于添加的Sprite3D一定要设置CameraMask不然是不会被看到的。

添加光照,使物体具有立体感

源码下载

Bullet库的设置方法请参考

如何使用 cocos2dx 3.2 TTF (xcode) 环境:Xcode6.1.1cocos2dx3.2RC0在网上看了很多的相关文章,发现能编译通过,但是运行出来不对。然后捣鼓了半天终于成功了。==||如下图,找到这个文件拖

cocos2dx-3.x(二)、坐标系 1、cocos2dx的坐标系和OpenGL坐标系一样,都是屏幕左下方为坐标原点,横轴向右x,纵轴向下y;IOS,Android,WP等使用的是标准屏幕坐标系,坐标原点是屏幕

cocos2dx-3.x(三)、场景切换及可能产生的错误 1、新建一个.cpp文件和一个.h文件2、记得确保把他们添加到classes文件夹中,否则在#includeYourScene.h时,可能会报错:错误:无法打开源文件确保的标准是

标签: Bullet(cocos2dx)学习制作桌球游戏之前期准备

本文链接地址:https://www.jiuchutong.com/biancheng/372751.html 转载请保留说明!

上一篇:Cocos2dx技术(三)——cocos2dx基本概念(一)(cocos2dx官方教程)

下一篇:如何使用 cocos2dx 3.2 TTF (xcode)(如何使用蓝牙耳机)

  • 房地产企业增值税计算
  • 港建费征收管理办法
  • 税筹是什么意思,有哪些工具
  • 兼职人员账务处理
  • 期初和期末余额均在借方的账户,一般属于
  • 印花税的计税依据为各种应税凭证上所记载的计税金额
  • 增值税属于会计科目的什么
  • 通用机打发票没有税率
  • 简易计税项目税金要计入成本吗
  • 准则依据
  • 房屋租赁费增值税专用发票几个点
  • 持有至到期投资科目被取消了吗
  • 所得税审核费计入什么科目
  • 银行客户专用回单分录
  • 公司向个人租赁设备
  • 财务软件期初数据录入
  • 营改增后房地产企业增值税税收筹划存在问题
  • 其他收益纳税
  • 药材种植政策
  • 常用的索赔费用计算方法
  • 劳务工程款和工人工资的区别
  • 财务转账一般多久到账
  • 如何增强无线网卡的接收能力
  • 项目款申请
  • 质押已至票据到期日
  • 公司决议效力确认纠纷
  • 本月暂估成本的会计分录
  • 游戏不能全屏幕
  • php 回调函数
  • 使用Huagepage和PGO来提升PHP7的执行性能
  • 企业清算剩余财产分配是否交个人所得税
  • 非合理损耗怎么做分录
  • php 错误和异常处理
  • 拉姆绍在哪里
  • 我国的增值税是价外税消费税是价内税
  • php常用方法
  • node-gyp版本
  • php中定义函数
  • 帝国cms功能
  • c语言的共用体
  • 一个例子解释唯物辩证法三大规律
  • 织梦tag标签怎么用
  • 记账凭证摘要怎么填写
  • 纳税总额怎么算
  • 加计扣除进项税额是什么意思
  • 原材料暂估入库分录
  • sql server怎么升级版本
  • 限定性净资产是资产类科目吗
  • 自产产品对外捐赠要确认收入吗
  • 公司支付的工伤待遇包括哪些
  • 印花税实际缴纳时计入
  • 短期借款的账务处理例题
  • 国有股权无偿划转是什么意思
  • 工程结算编制收费标准
  • 核定征收适用于什么税率
  • 会计里的管理费用包括什么
  • 行政单位资产报告范文
  • 事业单位整体转让
  • 呆账坏账对应五级分类
  • 资产减值损失和资产处置损益区别
  • 非关联企业之间可以借款吗
  • 解读分布式光伏开发前期工作要点及措施
  • MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要区别整理
  • mysql数据库简单介绍
  • ssms连接mysql
  • win7怎样安装摄像头驱动
  • linux 显示
  • mac触控板设置在哪
  • centos设置终端快捷键
  • linux i3桌面
  • unity 漫反射
  • python 爬虫例子
  • mysql 导出指定表
  • nodejs中的session
  • nodejs+websocket实时聊天系统改进版
  • 收讫付讫是什么意思
  • 北京比较大五金市场在哪
  • 上海各区财政收入排名
  • 江西各市财政收入和支出
  • 城市维护建设税怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设