Cocos2d-android (02) 添加一个精灵对象
什么是精灵:
1.精灵就是游戏当中的一个元素,通常用于代表画面当前中的一个事物,例如主人公,NPC和背景元素等;
2.一个精灵对象通常都与一张图片关联
3.精灵对象可以通过动作对象(CCAction)来产生动画效果
如何声明一个精灵对象
//声明一个精灵对象
CCSprite player;
如何将一个精灵对象添加到布景层中
//初始化精灵对象
player = CCSprite.sprite("player.png"); //设置精灵对象的位置(cocos2d中坐标原点在左下角而不是左上角)
player.setPosition(100,100); //将精灵对象添加到布景层中
this.addChild(player);
坐标也可以用CGPoint表示
//CGPoint用于表示坐标和向量
CGPoint point = CGPoint.ccp(100, 100);
player.setPosition(point);
为精灵对象添加动作
CGPoint target = CGPoint.ccp(600, 100);
//添加动作action(3s,pos,height,次数)
CCJumpTo jumpTo = CCJumpTo.action(3, target, 200, 5); //使用精灵对象执行该动作
player.runAction(jumpTo);
其他动作:
//瞬时动作
//沿Y轴镜象
CCFlipX flipX = CCFlipX.action(true);
//沿X轴镜象
CCFlipY flipY = CCFlipY.action(true);
//隐藏
CCHide hide = CCHide.action();
//现实
CCShow show = CCShow.action(); //延时动作
CGPoint pos = CGPoint.ccp(600, 600);
CCMoveTo moveTo = CCMoveTo.action(5, pos);
//五秒钟逆时针旋转270度(cocos2d中使用的是角度而不是弧度)
CCRotateTo rotateTo = CCRotateTo.action(5, 270);
//五秒钟内放大10倍
CCScaleTo scaleTo = CCScaleTo.action(5, 10);
//五秒钟内闪烁10次
CCBlink blink = CCBlink.action(5, 10); //执行对象
//sprite.runAction(moveTo);
//sprite.runAction(rotateTo);
//sprite.runAction(scaleTo);
sprite.runAction(blink);
完整代码:
import org.cocos2d.actions.interval.CCJumpTo;
import org.cocos2d.layers.CCLayer;
import org.cocos2d.nodes.CCSprite;
import org.cocos2d.types.CGPoint; public class GameLayer extends CCLayer { //声明一个精灵对象
CCSprite player; public GameLayer(){
//初始化精灵对象
player = CCSprite.sprite("player.png"); //设置精灵对象的位置(cocos2d中坐标原点在左下角而不是左上角)
//CGPoint用于表示坐标和向量
CGPoint point = CGPoint.ccp(100, 100);
player.setPosition(point); //将精灵对象添加到布景层中
this.addChild(player); CGPoint target = CGPoint.ccp(600, 100);
//添加动作action(3s,pos,height,次数)
CCJumpTo jumpTo = CCJumpTo.action(3, target, 200, 5); //使用精灵对象执行该动作
player.runAction(jumpTo);
}
}
Cocos2d-android (02) 添加一个精灵对象的更多相关文章
- Android 如何添加一个apk使模拟器和真机都编译进去 m
添加一个apk都需要将LOCAL_PACKAGE_NAME的值添加到PRODUCT_PACKAGES才行.而PRODUCT_PACKAGES一般在build/target/product/目录下的文件 ...
- Android 如何添加一个新的时区
前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net ...
- android webview 添加内置对象
package com.android.EBrowser; import android.app.Activity;import android.graphics.Rect;import androi ...
- Android P添加一个可以让system_server进程访问的hal service需要改动的sepolicy文件
在device/sepolicy/common目录中: 修改文件attributes: attribute hal_newXX;attribute hal_newXX_client;attribute ...
- android 直接添加一个Fragment到activity,不需要额外setContentView
getSupportFragmentManager().beginTransaction().replace(android.R.id.content,new ArticleListFragment( ...
- Android按键添加和处理的方案
Android按键添加和处理的方案 版本号 说明 作者 日期 1.0 Android按键添加和处理的方案 Sky Wang 2013/06/18 需求:Android机器上有个W ...
- Android按键添加和处理的方案【转】
本文转载自:http://www.cnblogs.com/skywang12345/p/3142851.html Android按键添加和处理的方案 版本号 说明 作者 日期 1.0 Andro ...
- 为jEasyUi的日期控件添加一个“清空”按钮----通过修改1.4的easyui.min.js
为 jQuery EasyUI 1.4 的datebox或datetimebox添加一个清空按钮 使用场景:为用户指定了日期的格式,且日期可以为空 修改语言包easyui-lang-zh_CN.js ...
- Egret--添加一个精灵事件
class Hello extends egret.DisplayObjectContainer{ //入口函数 private onAddStage(event:egret.Event){ //打开 ...
随机推荐
- left join查询结果大于原始数据
left join onon后面一定是一个主键或者是一个值为唯一的字段吗 on后面关联的条件如果是1对1的数量就不变,如果是1对多的数量就会增加 追问: 问题就在这,我1对多了 追答: 通常的做法是 ...
- 整合Struts2+SiteMesh+Spring+MyFaces(JSF)+Freemarker的时候启动服务器报错ClassNotFoundException: org.apache.struts2.sitemesh.FreeMarkerPageFilter
我一琢磨,难道freemarker与struts2的整合也需要添加一个struts2-freemarker-plugin的jar包? 后来找了半天,确认不需要这个. 然后我就上网搜,这个FreeMar ...
- java读写中文文件
在用Java程序进行读写含中文的txt文件时,经常会出现读出或写入的内容会出现乱码.原因其实很简单,就是系统的编码和程序的编码采用了不同的编码格式.通常,假如自己不修改的话,windows自身采用的编 ...
- Java 数据结构之Stack
Stack类表示后进先出(LIFO)的对象堆栈.栈是一种非常常见的数据结构.Stack继承Vector,并对其进行了扩展. 用法: 1.只有一个构造函数: public Stack() {} 2.创建 ...
- (五)ASP.NET中动态生成控件
今天被问到如何在ASP.NET 页面中动态创建一批控件,并且希望在后续代码中能访问到这些动态创建的控件.我用下面的例子来解释这个问题 ================================= ...
- Android InputMethodManager输入法简介
正文 一.结构 public final class InputMethodManager extends Object Java.lang.Object android.view.inputmeth ...
- BZOJ 1016 星球大战starwar(逆向-并查集)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1015 题意:给出一个图.每次删掉一个点,求删掉之后连通块个数. 思路:正着做不好做,我们 ...
- BZOJ 2956 模积和
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2956 题意:给出n和m.计算: 思路: i64 n,m; i64 cal(i64 m,i ...
- What is the difference between DAO and DAL?
What is the difference between DAO and DAL? The Data Access Layer (DAL) is the layer of a system tha ...
- git大文件管理
由于git在每一个commit时都会变动过的文件全部保存(不像其他的系统,只做文件增量存储),外加未变动文件的引用,这样如果在文件系统中有一些大的二进制文件,比如图片,视频,那么很快你的repo就将变 ...