位置: 编程技术 - 正文

Cocos2dx3.2 Crazy Tetris 制作简单的凸多边形刚体

编辑:rootadmin

推荐整理分享Cocos2dx3.2 Crazy Tetris 制作简单的凸多边形刚体,希望有所帮助,仅作参考,欢迎阅读内容。

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

现在我们要考虑的,就是如何为游戏中的方块添加刚体。

对于俄罗斯方块,我们可以知道,有以下几种方块:

这种我称之为块(block)型

这种我称之为直线(line)型

这种我称之为凸字(bulge)型

这种我称之为正-L(positive_L)型

这种我称之为反-L(negative_L)型

这种我称之为正-Z(positive_Z)型

这种我称之为反-Z(negative_Z)型

总之,方块就是这几种,现在主要问题就是为他们每一个添加刚体。一开始我直接利用PhysicsBody的静态创建方法createPolygon去创建多边形刚体,但是却报错,然后了解到这个只能创建凸多边形。而上面几种方块中,只有block和line是凸多边形,其他的都是凹多边形。(凸多边形的定义可以百度之,简单说就是没有一个内角超过度)

Cocos2dx3.2 Crazy Tetris 制作简单的凸多边形刚体

因此,必须想办法用凸多边形拼凑出各个方块,我的解决方法是用形状(shape)来组成这个PhysicsBody,而每一个shape,就如上图中的小正方形一样。如下(附带说明自定义方块类BaseBlock的思路):

首先,在头文件中声明变量:

这些变量的含义在注释中已经说明。其中,shape的顶点集是一个由Vec2(二维向量,可以看成一个点的结构体)组成的vector,因为Vec2其实就是一个简单的点的数组指针,因此定义了一个与之对应的vector<int>来存储每个shape的点的个数。(这里考虑到后面可能会进行裁剪,点个数不一定只有4个)

然后,就是声明并且定义初始化方块的函数:

在函数中,只要:

即可。

最后就是在GameView中调用该函数时,需要方块的顶点数据(此时以该图形的中心点为(0, 0)):

更完善一些可以将数据存储到资源文件中,然后统一封装加载方块的方法。

开启PhysicsWorld::DEBUGDRAW_ALL测试模式,运行效果如下:

关于制作游戏相关其他博客的目录,我放在利用Cocos2dx3.2制作重力版俄罗斯方块(Crazy Tetris)

[置顶] Android用SurfaceView写一个简单有趣的游戏--《数字组合》之一 最近突然有了一个想法--做一款android的简单游戏练练手,既要实现起来简单(毕竟只有一个人,框架什么的暂且就不用考虑了),又要能够达到对android

Cocos2d-x +Android + Windows 7 折腾了一天,看了好些人写的配置,但是乎没有一个能解决所有问题。这里记录下我的安装配置过程、遇到的问题以及解决方法。1.安装JavaJDK和EclipseIDE

〖用cocos2d-android引擎写游戏〗(一)第一个程序HelloWorld 〖用cocos2d-android引擎写游戏〗(一)第一个程序HelloWorld分类:Cocos2d-android引擎--:人阅读评论(1)收藏举报cocos2d-android游戏引擎开发教程java文本为

标签: Cocos2dx3.2 Crazy Tetris 制作简单的凸多边形刚体

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

上一篇:Cocos2dx3.2 CrazyTetris 物理引擎使用初步

下一篇:[置顶] Android用SurfaceView写一个简单有趣的游戏--《数字组合》之一([置顶]游戏名:chivalry2)

  • 增值税电子发票查询平台
  • 生产成本怎么计算
  • 其他资本公积可以是负数吗
  • 无形资产的摊销会计科目
  • 会计准则体系包括会计制度吗
  • 国税地税电子钥匙价格
  • 固定资产折旧费是产品成本的组成
  • 购货方跨年红冲发票会计分录
  • 国际货物运输07113
  • 一笔多少钱
  • 没有收入的小规模纳税人可以无票入费用吗?
  • 亏损 纳税
  • 绿化支出如何做会计处理?
  • 收到进度款开票如何做账务处理合适呢?
  • 未计提坏账准备的会计分录
  • 简易计税项目可以差额征税吗
  • 公司给离职员工个税零申报
  • 增值税与实际缴纳不符
  • 个人开增值税普通发票税率
  • 国税几年都没有缴纳
  • 工业企业水电费如何分摊
  • 金税盘不交年费可以正常使用吗
  • 企业转租房屋如何开票
  • 净利润和毛利润的计算公式
  • 个人所得税0元算不算缴税
  • 分次付息会计分录
  • tplink无线网卡驱动802.11n
  • 什么叫做区分
  • win10应用商店变成英文怎么改成中文
  • 高新企业研发费用占销售收入的比例
  • 支付劳保用品会计怎么做
  • 怎么才能快速?
  • NEC笔记本电脑开机启动热键
  • 购入研发设备
  • 销售折扣的会计分录处理
  • kb4539601安装失败
  • 最高像素的镜头是多少
  • 应收账款怎么做分录
  • 公司房产税如何征收税率
  • 税法工资薪金总额
  • php加载mysql
  • 手把手教你如何从一无所有到财务自由
  • 博客管理系统开题报告
  • 2020ccf csp报名和考试时间
  • 自注意力机制是什么
  • mysql分表数量取决于什么
  • css设置背景图片填充
  • php实现图片上传
  • 帝国cms会员注册天数自动升级会员组
  • 小规模纳税人如何申报增值税
  • 免税农产品发票怎么抵扣申报
  • 公司小规模纳税人转为一般纳税人,需要签补充协议吗
  • 企业贷款的条件和流程
  • 购销合同没注明合同有效期
  • 金税盘数据迁移到税务ukey
  • 公允价值变动属于
  • 保障房异地建设费属不属于土地成本
  • 递延所得税资产和负债账务处理
  • 预提费用处理
  • 内部交易内部交易收益造成的当期折旧的多计额
  • 融资租入的设备怎么入账
  • 会计循环属于什么流程
  • sql server数据库中的null(空值)
  • ubuntu中怎么卸载软件
  • windows7看视频卡顿如何解决
  • win10 sam文件下载
  • Linux服务器架设指南百度网盘
  • windows8桌面图标没有了
  • js 获取ua
  • 如何获得select选中的值
  • jquery 右键菜单
  • javascript总结笔记
  • javascript教程完整版
  • js获取tbody下的tr
  • android10获取设备id
  • python 下载一个网站上的所有文档
  • js数组用法
  • 江苏省税务局电子发票
  • 普通发票管理系统官网
  • 西安代驾平台有哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设