当前位置: 首页 > news >正文

【iOS-Cocos2d游戏开发】cocos2d 坐标系使用

【iOS-Cocos2d游戏开发】cocos2d 坐标系使用
无论是搞2d还是3d开发,最需要搞清楚的就是坐标系,这部分混乱的话就没啥奔头了。所以玩cocos2d,一上来就先把各种与坐标有关的东西搞清楚。
  基本的两个坐标系:屏幕坐标系和GL坐标系。


GL坐标系

  Cocos2D以OpenglES为图形库,所以它使用OpenglES坐标系。GL坐标系x轴朝右,y轴朝上。默认原点在左下角。


屏幕坐标系

  苹果的Quarze2D使用的是不同的坐标系统,屏幕坐标系原点在屏幕左上角,x轴向右,y轴向下。ios的屏幕触摸事件CCTouch传入的位置信息使用的是该坐标系。因此在cocos2d中对触摸事件做出响应前需要首先把触摸点转化到GL坐标系。


在调用任何需要设置位置的函数,或从函数获取位置信息前,必须要明确这个函数使用哪个坐标系。比如调用CCNode类的setPosition函数,它使用的就是GL坐标系。比如在处理触摸事件时CCTouch对象中的坐标就是屏幕坐标系。所以他们之间相互转换就变的比较重要了


GL坐标=====>屏幕坐标

CGPointtouchGL=ccp(x,y);//GL坐标X,Y

CGPoint touchScreen=[[CCDirector sharedDirector] convertToUI: touchScreen];//转换为屏幕坐标

屏幕坐标=====>GL坐标

CGPointtouchScreen=ccp(x,y);//屏幕坐标X,Y

CGPoint touchGl=[[CCDirector sharedDirector] convertToGL: touchScreen];//转换为GL坐标




相关文章:

  • bzoj5281/luogu4377 Talent Show (01分数规划+背包dp)
  • 纳米时代与现代无穷小分析
  • arguments.callee的作用及替换方案
  • 【IOS】实现一种书本的展示特效
  • asp.net webform设计思路的思考
  • 给自己的应用添加iAd广告之一
  • virsh查看迁移信息的两个命令
  • 【iOS-Cocos2d游戏开发】触屏事件处理机制
  • 迷宫里的动态规划应用
  • Django学习手册 - cookie / session
  • We are unable to complete the review of your app since one or more of your In App Purchases have not
  • IOS内存管理
  • gerrit + ldap + phpldapadmin docker部署
  • 【编程之美】2.1 - 求二进制数中1的个数
  • JavaScript中数组的排序方法:1.冒泡排序 2.选择排序
  • Android开源项目规范总结
  • GraphQL学习过程应该是这样的
  • HTTP 简介
  • httpie使用详解
  • idea + plantuml 画流程图
  • java2019面试题北京
  • laravel with 查询列表限制条数
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • MYSQL 的 IF 函数
  • scala基础语法(二)
  • spring-boot List转Page
  • Twitter赢在开放,三年创造奇迹
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 前端学习笔记之观察者模式
  • 什么是Javascript函数节流?
  • 思维导图—你不知道的JavaScript中卷
  • 学习使用ExpressJS 4.0中的新Router
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 怎样选择前端框架
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • zabbix3.2监控linux磁盘IO
  • 数据库巡检项
  • ​flutter 代码混淆
  • ​批处理文件中的errorlevel用法
  • ​一些不规范的GTID使用场景
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • ()、[]、{}、(())、[[]]命令替换
  • (10)STL算法之搜索(二) 二分查找
  • (solr系列:一)使用tomcat部署solr服务
  • (二)linux使用docker容器运行mysql
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转载)深入super,看Python如何解决钻石继承难题
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET的微型Web框架 Nancy
  • .net和php怎么连接,php和apache之间如何连接
  • .net快速开发框架源码分享