位置: 编程技术 - 正文
推荐整理分享Cocos2dx3.2 Crazy Tetris 游戏输入(键盘事件,重力事件,触摸屏事件),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
游戏基本的逻辑功能之前已经完成,之后的问题就是如何去控制游戏中的方块。在电脑上,很显然就是使用键盘最为直接,而在手机上,考虑上要让操作方便,这里采用的是用重力感应控制左右移动,点击屏幕进行方块的旋转。
下面,就是加入这些事件的方法:
加入键盘事件,需要重写方法:
加入重力感应事件,需要重写方法:
加入触摸屏事件,需要重写方法:
很显然,一个是按键点击方法,一个是按键释放方法。其中的KeyCode就是被按的那个键的编码可以在EventKeyboard::KeyCode类中找到键盘上每个键的定义。
这里的方法中,我是在键盘按下后,给方块一个左右(x)方向的速度,而在送开时,将速度置为0。如下:
如上是按下按下向左按钮的事件。用setVelocity设置速度,y方向用它自己的速度,x方向设为。
然后就是按向上的按钮将有旋转事件:
用setAngularVelocoty设置其角速度。
紧接着,便是在按钮点击释放事件中将这些力恢复:
里面那两行代码,分别是恢复左右移动和旋转的方法。
对于加入重力感应事件,主要是其参数Acceleration acc,通过这个可以判断手机旋转的方向。他有四个变量x、y、z、timestamp。其中x,y,z很容易想象,当我们手中平端着手机时,平面上是x轴和y轴,垂直方向是z轴。
这里,用z轴可以判断手机是朝上还是朝下(躺着玩手机)。用x轴判断重力的左右偏移。代码如下:
最后说触摸屏事件,这里重写的一共有四个,onTouchBegan是触摸事件开始,onTouchMoved是触摸移动,onTouchEnded是触摸事件结束。onTouchChancelled,这个,我也不太清楚,网上查了一下,我的理解是,既然是取消,和结束差不多,但你主动取消了,不就是结束。所以,这个可能是被动取消了吧,比如来了个电话什么的。不去深究他了先。
其实可以想象,点击旋转就是一个按钮事件,所以只需要点击开始和点击结束就可以。
因此,有如下代码:
触摸开始时,设置其旋转速度,并且将标识置为true。
然后,触摸结束时:
根据标识旋转速度回复。
关于制作游戏相关其他博客的目录,我放在利用Cocos2dx3.2制作重力版俄罗斯方块(Crazy Tetris)[置顶] 《CrazyBird》Android休闲射击类游戏1.0版发布啦 《CrazyBird》Android休闲射击类游戏1.0版发布啦新游戏新版本首发啦《CrazyBird》(疯狂的小鸟)1.0版是快开客年做的一款休闲射击类游戏,游戏中你需要点
Android游戏之音频类设计 Android游戏之音频类设计1、基础知识:A.setVolumeControlStream(AudioManager.STREAM_MUSIC);
cocos2dx中地图拖拽(任意方向拖拽+固定方向拖拽) 在游戏开发中,经常会碰见需要使用地图拖拽,例如通关关卡地图,可以允许用户拖拽选择进入哪个关卡,那么在cocos2dx中如何来实现呢?请见如下方案
标签: Cocos2dx3.2 Crazy Tetris 游戏输入(键盘事件,重力事件,触摸屏事件)
本文链接地址:https://www.jiuchutong.com/biancheng/371298.html 转载请保留说明!友情链接: 武汉网站建设