编写MyLayer,2 锚点,3 精灵的创建,4 zorder
1
编写MyLayer
头文件:MyLayer.h |
#include USING_NS_CC; //继承CCLayer class { public: //没有构造函数和析构函数 CREATE_FUNC(MyLayer); /*static MyLayer *create();*/ static bool }; |
MyLayer.cpp |
#include //MyLayer *MyLayer::create(){ // // // // // // // // // // // //} bool { if (!CCLayer::init()) { return } CCSize //创建一个精灵 CCSprite * spr->setPosition(ccp(winSize.width/2,winSize.height //加入一个精灵 addChild(spr); return } CCScene *MyLayer::scene() { CCScene * MyLayer * scene->addChild(layer); return } |
要想让写的Layer可以执行,须要在AppDelegate.app中加入例如以下代码 |
1、 2、 bool // initialize director CCDirector* CCEGLView* pDirector->setOpenGLView(pEGLView); // turn on display FPS pDirector->setDisplayStats(true); // set FPS. the default value is 1.0/60 if you don't call this pDirector->setAnimationInterval(1.0 // create a scene. it's an autorelease object //CCScene *pScene = HelloWorld::scene(); CCScene * // run pDirector->runWithScene(pScene); return } |
执行结果: |
2
锚点
LayerAnchorPoint.h |
#ifndef #define #include USING_NS_CC; class { public: static bool static void void CCSprite *spr; }; #endif |
LayerAnchorPoint.cpp |
#include CCScene * { //创建一个场景 CCScene * LayerAnchorPoint * scene->addChild(layer); return } LayerAnchorPoint * LayerAnchorPoint *pRet if (pRet { pRet->autorelease(); } else { delete pRet = } return } bool { CCLayer::init(); CCSize spr = //设置锚点 //spr->setAnchorPoint(ccp(0.656,0.5)); spr->setScale(5.0f); spr->setPosition(ccp(winSize.width/2,winSize.height/2)); addChild(spr); //设置一个定时器,频率是2秒 schedule(schedule_selector(LayerAnchorPoint::mySchedule), return } //通过以下的方法实现画线 void { CCSize //RGB颜色。当中最后一个參数是透明率 ccDrawColor4B(255,0,0,255); ccDrawLine(ccp(0, ccDrawLine(ccp(winSize.width } //通过以下的方式设置旋转 void static ro += 30; spr->setRotation(ro); } |
改动:AppDelegate.cpp中的代码 |
头文件: #include bool // initialize director CCDirector* CCEGLView* pDirector->setOpenGLView(pEGLView); // turn on display FPS pDirector->setDisplayStats(true); // set FPS. the default value is 1.0/60 if you don't call this pDirector->setAnimationInterval(1.0 // create a scene. it's an autorelease object //CCScene *pScene = HelloWorld::scene(); //CCScene * pScene = MyLayer::scene(); CCScene * // run pDirector->runWithScene(pScene); return } |
执行结果:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt=""> |
3
精灵的创建
1、编写:LayerSprite.h |
#include USING_NS_CC; class { public: static CREATE_FUNC(LayerSprite); bool }; |
编写:表示屏幕大小的头文件AppMacros.h |
#ifndef #define #include //通过提前定义获得屏幕大小 #define #endif |
编写:LayerSprite.cpp |
#include #include CCScene *LayerSprite::scene() { CCScene * scene = CCScene::create(); LayerSprite * layer = LayerSprite::create(); scene->addChild(layer); return scene; } bool T02LayerSprite::init() { CCLayer::init(); CCSprite * bg = CCSprite::create("sprite/background.jpg",CCRectMake(0,0,480,320)); bg->setAnchorPoint(ccp(0,0)); bg->setPosition(CCPointZero); addChild(bg); CCImage * image = image->initWithImageFile("sprite/plant.png"); CCTexture2D * texture = texture->autorelease(); texture->initWithImage(image); CCSprite * plant = CCSprite::createWithTexture(texture); plant->setPosition(ccp(100,winSize.height/2)); addChild(plant); CCTexture2D * texture2 = CCSprite * bullet = bullet->setPosition(ccp(200, addChild(bullet); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("sprite/zombie.plist"); //CCSpriteFrame *sf = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("z_1_attack_01.png"); //CCSprite *zombie = CCSprite::createWithSpriteFrame(sf); CCSprite *zombie = zombie->setPosition(ccp(400, addChild(zombie); CCJumpBy * by = zombie->runAction(CCRepeatForever::create(by)); CCSpriteFrame * CCSprite * sun = sun->setPosition(ccp(400, addChild(sun); return } |
同上,将LayerSprite.h加到AppDelegate.cpp中,并加入上: CCScene * pScene = |
执行结果:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt=""> |
4 zorder
LayerZorder.h |
#include USING_NS_CC; class { public: static CREATE_FUNC(LayerZorder); bool }; |
LayerZorder.cpp |
#include #include CCScene *LayerZorder::scene() { CCScene * LayerZorder * scene->addChild(layer); return } bool { CCLayer::init(); CCSprite * //将图片缩放 man->setScale(0.3f); CCSprite * woman->setScale(0.3f); CCSprite * smallThree->setScale(0.3f); man->setPosition(ccp(winSize.width smallThree->setPosition(ccp(winSize.width woman->setPosition(ccp(winSize.width addChild(man); addChild(smallThree); addChild(woman); //通过setZOrder来设置图片显示顺序 man->setZOrder(100); smallThree->setZOrder(50); woman->setZOrder(0); return /*CCLog("%d", man->getZOrder()); CCLog("%d", smallThree->getZOrder()); CCLog("%d", woman->getZOrder());*/ return } |
改动AppDelegate.cpp 1. 2. 执行结果:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt=""> |
编写MyLayer,2 锚点,3 精灵的创建,4 zorder的更多相关文章
- cocos2d-x 精灵的创建和基本使用
在cocos2d-x中.精灵能够说是一个最重要的组成元素,它代表游戏中一个最小的可见单位.同一时候也是CCNode一个最为灵活的子类,由于它能够通过装载一个平面纹理,从而具有丰富的表现力. 在进一步说 ...
- [Unity3D插件]2dtoolkit系列二 动画精灵的创建以及背景图的无限滚动
经过昨天2dtoolkit系列教程一的推出,感觉对新手还有有一定的启发作用,引导学习使用unity 2dToolKit插件的使用过程,今天继续系列二——动画精灵的创建,以及背景图的无限循环滚动,在群里 ...
- react-native-pg-style使用方法(以最简单的方式编写样式代码,抛弃react-native标准的样式创建方式.)
react-native-pg-style 以最简单的方式编写样式代码,抛弃react-native标准的样式创建方式. 看大家写的源码中都是按照react-native标准的样式创建方式来写样式代码 ...
- 从零开始编写自己的C#框架(11)——创建解决方案
这段时间一直在充电,拜读了园子中大神们的博文(wayfarer的<设计之道>.TerryLee的<.NET设计模式系列文章>.卡奴达摩的<设计模式>还有其他一些零散 ...
- 编写Qt Designer自定义控件(一)——如何创建并使用Qt自定义控件
在使用Qt Designer设计窗体界面时,我们可以使用Widget Box里的窗体控件非常方便的绘制界面,比如拖进去一个按钮,一个文本编辑器等.虽然Qt Designer里的控件可以满足我们大部分的 ...
- 基于OpenGL编写一个简易的2D渲染框架-01 创建窗口
最近正在学习OpenGL,我认为学习的最快方法就是做一个小项目了. 如果对OpenGL感兴趣的话,这里推荐一个很好的学习网站 https://learnopengl-cn.github.io/ 我用的 ...
- RuPengGame游戏引擎 精灵 createSprite 创建 setSpritePosition 设置位置 playSpriteAnimate 播放动画 setSpriteFlipX设置翻转 精灵图片下载地址
package com.swift; import java.awt.Point; import com.rupeng.game.GameCore;//导入游戏引擎包 public class Gam ...
- cocos2d-android学习四 ---- 精灵的创建
上篇文章我们创建了一个黑乎乎的界面.以下我们就给它增加一个精灵. 我们这次就一起来学习精灵的基础知识. 1.什么是精灵 游戏中全部会动的对象都是精灵,能够是主人公,背景元素,一个子弹或者是敌人. 一个 ...
- 11.按要求编写Java应用程序。 (1)创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。 编写两个构造方法:一个没有形参,在方法中将车牌号设置“XX1234”,速 度设置为100,载重量设置为100;另 一个能为对象的所有属性赋值; (2)创建主类: 在主类中创建两个机动车对象。
package java1; public class Che { //属性 public String nub; public int speed; public double weight ; C ...
随机推荐
- go之数组
一.数组概念 go语言提供了数组类型的数据结构 数组是具有 [唯一类型] 的一组 [固定长度] 的数据项序列,这种类型可以是任意类型 二.数组声明 var variable_name [SIZE]va ...
- android service--delphixe 10.3
开发中的陷阱: 1. 别放什么 *.wav文件,这个 服务窗口不能随便放东西,不然铁定出现意想不到的结果,比如 无法运行,因为没 ui界面,随意都不知是啥问题. 2. 不能加载 datamodule ...
- TYVJ 1288 飘飘乎居士取能量块
背景 9月21日,pink生日:9月22日,lina生日:9月23日,轮到到飘飘乎居士(狂欢吧,(^__^) 嘻嘻--). 描述 9月21日,今天是pink的生日,飘飘乎居士当然要去别人的领土大闹一番 ...
- 【WPF】使用 XAML 的 Trigger 系统实现三态按钮
利用 WPF 的 Trigger 系统,也可以很简单的只使用xmal实现三态按钮.在Window或UserControl的资源中声明按钮的style并加入触发功能.使用的时候直接在button里复写s ...
- 前端-Vue结构思维导图笔记
看不清的朋友右键保存或者新窗口打开哦!喜欢我可以关注我,还有更多前端思维导图笔记有vue结构分析,JS基础,JQ,JS高级,Angular,git等等
- 2B课程笔记分享_StudyJams_2017
课程2B-创建交互式应用(下) 概述 课程2B的内容主要包括:使用变量来更新欲显示在屏幕上的内容,为按钮添加事件响应(联系XML属性与Java方法)逻辑等. 后续的课程会逐步深入地讲解使用Java开发 ...
- 用JSP实现动态交互
一.什么是JSP? 1.在HTML中嵌入Java脚本代码 2.由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本代码 3.然后将生成的整个页面信息返回给客户端 二.为什么需要基于B/S技术的 ...
- 【sqli-labs】 less23 Error based - strip comments (GET型基于错误的去除注释的注入)
. 加单引号报错 加# http://localhost/sqli-labs-master/Less-23/?id=1'%23 错误没有改变,推测过滤了# 查看源码发现# -- 都被替换掉了 那么可用 ...
- C#遍历/反射 属性/字段
public static string SortParam<T>(T t) { string tStr = string.Empty; if (t == null) { return s ...
- jmeter3.1 压测
压测目标:error 为0,线程起到250,服务器配置达到最大 一.Jmeter3.1 压测 JMeter3.1提供一个用于生成HTML页面格式图形化报告的扩展模块.该模块支持通过两种方式生成多维度图 ...