位置: 编程技术 - 正文

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)

  • 简易计税差额抵扣
  • 托管开票
  • 季报利润表本期数
  • 让渡资产使用权收入计入什么科目
  • 上个月的进项发票可以这个月勾选吗
  • 职工福利费在期间费用表中怎么填
  • 公司购买汽车抵税规则
  • 开增值税票需要对方什么资料
  • 以前纳税申报表在哪里查询
  • 物业公司取暖费收费标准
  • 全额抵扣有哪些
  • 工程开发票备注栏必需要写吗?
  • 物业公司税务风险
  • 股东贷款企业贷债务
  • 天猫运费险是按照每一单结算的吗
  • 计提税金和缴纳税金的会计分录
  • 小企业财务报表模板免费下载
  • 账面销项税额与申报表不一致怎么处理
  • 员工两处取得工资收入
  • 企业的团队建设之荒野求生
  • iphone6按键功能介绍
  • 企业招聘费用计算公式
  • 管理费用如何分摊到产品成本
  • uniapp获取input的值
  • win10专业版问题
  • win 10有什么用
  • php 面向对象
  • 若依框架登录后跳转到指定页面
  • isignup.exe是什么进程 isignup进程查询
  • 企业一部分房屋出租后怎样缴纳房产税
  • php数组去重函数
  • laravel怎么用
  • php静态方法调用
  • thinkphp6验证器
  • 科目余额表怎么导出
  • 餐费发票怎么做账务处理
  • 公司给员工发放福利会计分录
  • 节流和防抖js
  • 传统结算工具的不足有
  • 破解版微擎框架如何升级
  • 公允价值变动损益
  • 工资如何记账
  • 文章初审过了
  • 应付账款的入账价值应当包括增值税的进项税额
  • 分公司是否能开劳务发票
  • 怎样暂估成本的会计分录
  • 购车费用怎么进行账务会计处理
  • 投标费用如何入账科目
  • 单位定期存款如遇利率调整,不论调高调低
  • 会计准则允许预提吗
  • 纳税人缴纳的工资怎么查
  • 工会里的钱
  • 公司投资款怎么算
  • 不良债权处置折扣率
  • 收到支票如何去银行兑现
  • 基本户转法人个人账户如何做账
  • mysql批量删除数据库死锁
  • 怎么怎么恢复
  • ubuntu系统自动获取ip
  • 菜鸟flask
  • 局域网共享提示无法访问 你没有权限
  • win8任务管理器快捷键
  • linux ultrasphinx Anonymous modules have no name to be referenced by
  • windows7没有声音怎么调
  • 老电脑安装win7还是win8
  • 一开机弹出个微软重新设定
  • linux添加用户命令并添加管理员
  • win7系统打不开win10安装包
  • 无线和网络飞行模式
  • linux个人系统
  • js如何使用
  • Android一分钟环境搭建,包含Mac、Linux、Windows
  • 队列remove
  • Node.js中的全局对象有
  • jquery 点击按钮
  • js中的三种弹出消息提醒的命令
  • js设置图片边框
  • jQuery.Callbacks()回调函数队列用法详解
  • A级纳税人和一般纳税人区别
  • 一般纳税人简易征收会计分录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设