让游戏设计变灵活的方法之一,就是使用实体/组件式设计方法,该方法将所有物体都看作Entity对象,而不是为每种物体设计一个类。在屏幕中所绘制的所有东西都是实体(场景、层、文字、几何图形、线条、精灵等)。这些实体对象稍后会被动态地设置属性(或组件),使之对应的做出改变。
1.更新相关
Engine以逻辑线程及GL线程以数据同步的方式对游戏进程进行更新,Entity更新其中onUpdate和onDraw方法,onUpdate方法中IgnoreUpdate就是判断是否更新逻辑(包括属性参数,如坐标等),onDraw方法中是否绘图根据Visible判断。
2.触摸相关
Entity中有onTouch和onAreaTouched方法,从Engine中对事件进行分发,在onTouch中进行处理,传递到onAreaTouched,所以重写onAreaTouched时要设置,Entity.setIgnoreTouch(false),不然在onTouch时就过滤了导致onAreaTouched没有响应,onAreaTouched的返回值是指是否已处理事件。
3.坐标转换
因为Entity有parent和Child的相对概念,所以对应坐标也有相对的说法,坐标的转换也就包含在内了。
举例:
convertLocalToSceneCoordinates将当前坐标转换Entity在Scene的坐标
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。