Cocos2d入门--1--初涉相关属性或代码
Cocos2d vision: cocos2d-x-3.8.1
万丈高楼,起于累土。对于一个游戏框架的学习,其实在于框架功能的使用积累,学会了如何在cocos2d游戏引擎的基础上使用它提供的各种功能,并灵活运用,
以及学会查阅Cocos2d官方提供的API文档。相信自己也能开发出自己喜爱或者让别人羡慕的游戏。
目录:
1>认识origin和visibleSize以及cocos2d的基础绘画类DrawNode的简单实用
2>认识 CCLOG()
3>有关schedule的使用
4>有关ContentSize和Anchor
5>有关本地坐标转换为世界坐标
===================================================================================================
1、认识origin和visibleSize以及cocos2d的基础绘画类DraNode的简单实用
origin可视区域的出发点坐标,visibleSize可视区域的尺寸
- Size visibleSize = Director::getInstance()->getVisibleSize();
- Vec2 origin = Director::getInstance()->getVisibleOrigin();
所以如果要获取屏幕可视区域的位置以及相对宽高,就可以在这两个属性的基础上设置。
实例代码:
- //1、DrawNode对象是cocos2d中比较基础的对象,可以用来绘制一些图形
- auto rect = DrawNode::create();
- //rect->drawRect(const cocos2d::Vec2 &origin, const cocos2d::Vec2 &destination, const cocos2d::Color4F &color)
- //第一个参数是绘制的起点,第二个参数是绘制的距离。第三个参数是颜色,4F表示的是RGBA四个颜色值,另外用F浮点数设置,每个浮点数范围在(0,1)之间
- rect -> drawRect(Vec2(,), Vec2(, ), Color4F(1.0, , , 1.0));
- addChild(rect);
- rect -> setPosition(origin.x + visibleSize.width/-,
- origin.y + visibleSize.height/-);//设置矩形在可视区域的中间
- // rect -> setPosition(origin.x,origin.y);//设置起点位置在可视区域的起点坐标
效果:
2、认识CCLOG的打印输出。
- CCLOG("X:%f,Y:%f\n",origin.x,origin.y);
类似C语言里的scanf("%d",number)语句。不过CCLOG不用添加换行符号"\n",CCLOG打印字符串之后,会自动打印换行。
- auto rect = DrawNode::create();
- rect -> drawRect(Vec2(,), Vec2(, ), Color4F(1.0, , , 1.0));
- addChild(rect);
- rect -> setPosition(origin.x + visibleSize.width/,
- origin.y + visibleSize.height/);//设置矩形在可视区域的中间
- auto dot = DrawNode::create();
- dot -> drawDot(Vec2(,), , Color4F(1.0, 1.0, 1.0, 1.0));
- addChild(dot);
- dot -> setPosition(origin.x + visibleSize.width/ ,origin.y + visibleSize.height/ );
- //我们需要让矩形不断的旋转,实用
- //schedule(<#const std::function<void (float)> &callback#>, <#const std::string &key#>)
- //第一个参数是函数(这里实用...表达式快速定义这个函数,并给float参数,[]是捕获列表,我们捕获dot和rect两个对象),
- //第二个参数是时间表中被调用这个操作的名称,我们可以通过这个名称来取消持续的调用。
- schedule([dot,rect](float f){
- rect -> setRotation(rect->getRotation()+);//选装这个矩形
- }, "Test");
效果图:

- auto rect = DrawNode::create();
- rect -> drawRect(Vec2(,), Vec2(, ), Color4F(1.0, , , 1.0));
- addChild(rect);
- rect -> setPosition(origin.x + visibleSize.width/,
- origin.y + visibleSize.height/);
- auto dot = DrawNode::create();
- dot -> drawDot(Vec2(,), , Color4F(1.0, 1.0, 1.0, 1.0));
- addChild(dot);
- dot -> setPosition(origin.x + visibleSize.width/ ,origin.y + visibleSize.height/ );
- //现在要把这个rect放置在屏幕的中间
- rect -> setContentSize(Size(,));
- rect -> setAnchorPoint(Vec2(0.5, 0.5));//这个设置锚点,参数是个比例值,
- schedule([dot,rect](float f){
- rect -> setRotation(rect->getRotation()+);
- }, "Test");
- return true;
效果图:

- auto rect = DrawNode::create();
- rect -> drawRect(Vec2(,), Vec2(, ), Color4F(1.0, , , 1.0));
- addChild(rect);
- rect -> setPosition(origin.x + visibleSize.width/,
- origin.y + visibleSize.height/);
- auto dot = DrawNode::create();
- dot -> drawDot(Vec2(,), , Color4F(1.0, 1.0, 1.0, 1.0));
- rect->addChild(dot);//这里相对前面的代码实例,原本是场景add(dot),现在改为rect->add(dot)
- dot -> setPosition(Vec2(, ));//本地空间
- //现在要把这个rect放置在屏幕的中间
- rect -> setContentSize(Size(,));
- rect -> setAnchorPoint(Vec2(0.5, 0.5));//这个设置锚点,参数是个比例值,
- schedule([dot,rect](float f){
- rect -> setRotation(rect->getRotation()+);
- auto p = dot->convertToNodeSpace(Vec2(, ));//本地坐标转换为世界坐标
- CCLOG("%f,%f",p.x,p.y);
- }, "Test");
- return true;
效果:
Cocos2d入门--1--初涉相关属性或代码的更多相关文章
- 编写高质量代码改善C#程序的157个建议——建议147:重构多个相关属性为一个类
建议147:重构多个相关属性为一个类 若存在多个相关属性,就应该考虑是否将其重构为一个类.查看如下类: class Person { public string Address { get; set; ...
- PyQt(Python+Qt)入门:Designer组件属性编辑界面中QWidget类相关属性详解
本文适用人员:本文比较长,适合不理解Qt Designer部件属性的人员阅读或资料查找. 声明: 1.如果有人认为本文是简单的复制粘贴+翻译而成,敬请读本文最后的后记: 2.本文为老猿Python学习 ...
- 【Cocos2d入门教程二】Cocos2d-x基础篇
上一章已经学习了环境的搭建.这一章对基础概念进行掌握.内容大概有: 1.导演 2.场景 3.节点 4.层 4.精灵 1.导演(Director) 导演存在的主要作用: a.环境设定(帧率 初始化ope ...
- HTML入门基础教程相关知识
HTML入门基础教程 html是什么,什么是html通俗解答: html是hypertext markup language的缩写,即超文本标记语言.html是用于创建可从一个平台移植到另一平台的超文 ...
- Activity Intent Flags及Task相关属性
转自http://www.cnblogs.com/lwbqqyumidi/p/3775479.html 今天我们来讲一下Activity的task相关内容. 上次我们讲到Activity的四种启动模式 ...
- Android总结篇系列:Activity Intent Flags及Task相关属性
同上文一样,本文主要引用自网上现有博文,并加上一些自己的理解,在此感谢原作者. 原文地址: http://blog.csdn.net/liuhe688/article/details/6761337 ...
- IOS开发UI基础UITextFidle相关属性
UITextFidle相关属性 • enablesReturnKeyAutomatically默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的. ...
- UILabel的相关属性设置
在iOS编程中UILabel是一个常用的控件,下面分享一下UILabel的相关属性设置的方法. 很多学习iOS6编程都是从storyboard开始,用到UILabel时是将控件拖到storyboard ...
- css margin的相关属性,问题及应用
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=48 引言:margin ...
随机推荐
- LDPC编译码基本原理
LDPC编译码基本原理 学习笔记 V1.1 2015/02/18 LDPC编译码基本原理 概述 本文是个人针对LDPC的学习笔记,主要针对LDPC译码算法做了简要的总结.该版本主要致力 ...
- 配置visual studio code进行asp.net core rc2的开发
1.安装.net core sdk https://github.com/dotnet/cli#installers-and-binaries,根据你的系统选择下载. 2.下载vscode的C#扩展插 ...
- [转载]我们可以用SharePoint做什么
前言 不知不觉作为一个SharePoint的开发人员若干年了,从SharePoint API开始学习,到了解SharePoint的结构,逐渐一点点了解sharepoint的体系:从SharePoint ...
- iOS-布局-Masonry-优先级
一.AutoLayout有两个重要的属性: 1.Content Compression Resistance 百度翻译(内容压缩抗力) 2.Content Hugging 百度翻译(内容拥抱) ...
- 开放产品开发(OPD):OPD框架
在 开放产品开发(OPD):开篇 中讲了一下OPD是什么,以及它主要指引的方法,这篇文字将给大家介绍一下OPD框架. 一个公司有三种经营模式,像游戏代理的属于运营型,做企业定制项目管理软件的属于项目型 ...
- 如何将Mac OS X10.9下的Python2.7升级到最新的Python3.3
Mac OS X10.9默认带了Python2.7,不过现在Python3.3.3出来了,如果想使用最新版本,赶紧升级下吧.基本步骤如下. 第1步:下载Python3.3 下载地址如下: Python ...
- 【团队冲刺总结】一个编码人员的反(tu)思(cao)
消失了半个多月了啊,算算时间,好像确实有近个把月没有好好的写博客来了.我一直很想写博客的,之前有老师问过写博客的动力是什么.我想了想,我觉得可能是我比较喜欢看书吧,不管是专业书还是小说(好吧,我承认, ...
- servlet、filter、listener、interceptor之间的区别和联系
一.概念 1.servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层. 2.filter: ...
- 【C#】OOP之继承那点事
前言: 继承这点事,说多不多,说少不少,这里只描述了一些我认为的基础篇,望各位大神指教.本节参照了C#高级编程和Think in java对继承的描述,我个人认为OOP只是思想,故看明白一个就说通的, ...
- Ubuntu 12.04下解决Tomcat自启动问题
当我们安装好Tomcat使用后发现,每次启动都需要在终端中手动键入sudo /var/tomcat/bin/startup.sh,那么我们怎么解决这个问题呢 http://hovertree.com/ ...