位置: 编程技术 - 正文

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)

  • 公司利润提取如果避税怎么做会计分录?
  • 什么是代扣代缴申报
  • 进项税额转出期限是多少
  • 处置无形资产属于经营活动吗
  • 投资收益免征企业所得税
  • 购进灭火器材怎么入账
  • 个税系统设置在哪里
  • 讲师培训费开票税点是?
  • 票面3个点的增值税发票是交几个点的税金
  • 一般纳税人开红票怎么处理
  • 企业审计费入什么科目
  • 股权变更怎么收费
  • 委托加工白酒消费税计税依据
  • 房屋评估价格是否含增值税
  • 车辆抵押登记费用可以退回吗
  • 销售货物物流公司丢件赔偿会计分录
  • 因质量问题怎么赔偿
  • 未开票收入增值税如何计提
  • 国税注销了地税没注销现在经营异常
  • 企业收到稳岗补贴的账务处理
  • 变更办税人需要原办税人去吗
  • 三证合一后纳税人识别号和信用代码一样吗
  • 营改增后餐饮业税种
  • 资产减值损失需要结转吗
  • 工商年报社保需要多少钱
  • 苹果手机耳返功能怎么关闭
  • 本月未认证的怎么处理
  • php session_start
  • 在win7系统中将打开窗口拖到屏幕顶端
  • 鸿蒙系统通知栏界面怎么打开
  • 公司logo设计费是业务宣传费吗
  • php数组函数,选班长
  • 新准则规定
  • 社保挂靠会计处理?
  • 温尼伯湖成因
  • php vld
  • 企业最佳资金结构
  • PyTorch深度学习实战 | 神经网络的优化难题
  • 兼职人员需要
  • 营业外收入账务处理方法
  • 预收安装费的会计分录
  • 利润表没有本月金额只有本年累计可以吗
  • 查看php
  • php的do while语句
  • 法人给对公账户转账
  • 库存商品和固定成本区别
  • 房地产企业土地使用税纳税义务终止
  • 发票已交税如何退税
  • sql server 2008登录服务器名称
  • c#调用excel
  • 如何网上填报个人所得税
  • 固定资产处置的增值税怎么入账
  • 中级会计报名必须用电脑吗
  • 建筑企业工程管理部职责
  • 零工发生事故算工伤吗
  • 机票行程单上没有金额怎么报销
  • 发票没交税可以报销吗
  • 长期应付款涉及哪些业务,应如何进行核算
  • 发票盖章需要知道的10个问题
  • sql server 2000安装好打开不显示名称和服务原因
  • sql server 2019自定义安装教程
  • mysql使用语句
  • u盘怎么安装win2012
  • win2000系统安装教程
  • 键盘设施
  • ubuntu鼠标不能移动
  • xp注册表文件在哪
  • Win10装不上是什么原因
  • win8怎么找开始程序
  • linux怎么修改主配置文件
  • opengl 编程
  • unity3D游戏开发
  • mac如何打开两个微信
  • python简明
  • android studio常用控件
  • jquery创建map集合
  • 房产税可以抵扣增值税吗
  • 融资租赁出租会计账务处理流程
  • 买高档手表
  • 税控盘红字发票开具流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设