lua cocosstudio 怎么获得触摸点的坐标
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua cocosstudio 怎么获得触摸点的坐标相关的知识,希望对你有一定的参考价值。
首先触摸方式应该是Touch,这点毋容置疑的。其次在require后,对导出的lua文件中的触摸回调添加自定义回调,重点就是自定义回调中如何获取触摸点坐标,也就是题主所提出的问题关键。比如自定义回调函数为CloseButton( node, eventType ),node就是触摸本身的节点(比如按钮,图片等),在CloseButton中获取实时的触摸坐标为node:getTouchMovePosition(),这样就能获取到move时的触摸点坐标。如果想知道触摸开始的的坐标则为node:getTouchBeganPosition()。 参考技术A 首先导出的LUA文件是这样的 箭头指向的位置有个Create函数。就是调用这个函数进行创建。(至于这个参数是什么,后边会讲到) 首先,先将导出的这个文件require进来,进来之后呢,调用create方法,就会返回Cocos创建的Scene了本回答被提问者采纳ios开发事件处理之 四:hittest方法的底层实现与应用
#import "XMGWindow.h" /** 1:注意点:hitTest方法内部会调用pointInside方法,询问触摸点是否在自己身上,当遍历子控件时,传入的坐标点要进行转化,将父视图上的坐标点转换到所要传递的子视图上的坐标点 2:hitTest的底层实现:当控件接收到触摸事件的时候,不管能不能处理事件,都会调用hitTest方法,此方法的底层实现是:1:先看自己是否能接受触摸事件 2:再看触摸点是否在自己身上 3:从后往前遍历子控件,拿到子控件后,再次重复1,2步骤,要把父控件上的坐标点转换为子控件坐标系下的点,再次执行hitTest方法。 3:若是最后还没有找到合适的view,那么就return self,自己就是合适的view */ @implementation XMGWindow //作用:去寻找最适合的View //什么时候调用:当一个事件传递给当前View,就会调用. //返回值:返回的是谁,谁就是最适合的View(就会调用最适合的View的touch方法) -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{ //1.判断自己能否接收事件 if(self.userInteractionEnabled == NO || self.hidden == YES || self.alpha <= 0.01) { return nil; } //2.判断当前点在不在当前View. if (![self pointInside:point withEvent:event]) { return nil; } //3.从后往前遍历自己的子控件.让子控件重复前两步操作,(把事件传递给,让子控件调用hitTest) int count = (int)self.subviews.count; for (int i = count - 1; i >= 0; i--) { //取出每一个子控件 UIView *chileV = self.subviews[i]; //把当前的点转换成子控件坐标系上的点. CGPoint childP = [self convertPoint:point toView:chileV]; UIView *fitView = [chileV hitTest:childP withEvent:event]; //判断有没有找到最适合的View if(fitView){ return fitView; } } //4.没有找到比它自己更适合的View.那么它自己就是最适合的View return self; } //作用:判断当前点在不在它调用View,(谁调用pointInside,这个View就是谁) //什么时候调用:它是在hitTest方法当中调用的. //注意:point点必须得要跟它方法调用者在同一个坐标系里面 -(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{ NSLog(@"%s",__func__); return YES; } @end
以上是关于lua cocosstudio 怎么获得触摸点的坐标的主要内容,如果未能解决你的问题,请参考以下文章