游戏引擎cocos2d-android使用大全

做手机游戏需要三个核心的类,即:SurfaceView,SurfaceHolder,Thread。帧数要在30帧左右是最好的。

cocos2d游戏引擎

封装好的框架,可直接使用
cocos2d-android (用java编程)

导演:控制场景的切换,控制开始和暂停
场景:添加图层

图层:添加精灵

精灵

全屏:
application:

android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 

Activity:
android:screenOrientation="landscape"

图片放到assess目录下

    CCGLSurfaceView surfaceView=new CCGLSurfaceView(this);  setContentView(surfaceView);director=CCDirector.sharedDirector();//程序只能有一个导演director.attachInView(surfaceView); //开启线程CCScene ccScene=CCScene.node();//为了api和cocos-phone一致ccScene.addChild(new FirstLayer());director.runWithScene(ccScene);    

CCDirector

  1. attachInView 开启线程
  2. runWithScene 运行场景
  3. 生命周期的方法 resume pause end
  4. setDisplayFPS 显示帧率
  5. setScreenSize 设置屏幕大小 自动屏幕适配
  6. setDeviceOrientation 设置屏幕的方向

    director.setDeviceOrientation(CCDirector.kCCDeviceOrientationLandscapeLeft);director.setDisplayFPS(true);  //是否显示帧率director.setAnimationInterval(1.0f/30); //锁定帧率,只能向下锁定director.setScreenSize(480, 320); //设置屏幕的大小,自动屏幕适配,必须在开启线程之后调用

CCScene

目前该类没有什么具体的功能,它只是作为一个项目中需要展示内容的根节点存在。

CCLayer

安卓的坐标原点是在左上角,而cocos2d坐标原点在左下角

//按下的事件
@Override
public boolean ccTouchesBegan(MotionEvent event) {
//先把android坐标系中的点转换为cocos2d坐标系中的点CGPoint converTouchToNodeSpace=this.convertTouchToNodeSpace(event);//  System.out.println("我被按了,呜呜呜!");CGRect boundingBox=ccSprite.getBoundingBox();  //获取精灵的矩形event.getRawX();//判断点是否在矩形之中boolean containsPoint=CGRect.containsPoint(boundingBox, converTouchToNodeSpace);if(containsPoint){ccSprite.setScale(ccSprite.getScale()+0.2);}else{ccSprite.setScale(ccSprite.getScale()-0.2);}return super.ccTouchesBegan(event);
}

CCSprite

  1. setAnchorPoint 设置锚点
  2. setPosition 设置坐标
  3. setScale 设置缩放
  4. setFlipX(Y) 设置水平(垂直)翻转
  5. ccSprite.setOpacity(150); 设置不透明度 值越大越不透明
  6. setVisible , 设置是否可见 true可见

  ccSprite = CCSprite.sprite("z_1_attack_01.png");ccSprite.setAnchorPoint(0,0);// 设置锚点ccSprite.setPosition(100, 100);//设置坐标ccSprite.setScale(1); // 设置缩放//ccSprite.setFlipY(true);// X水平翻转  Y垂直翻转//ccSprite.setOpacity(0);//设置不透明度 值越大 越不透明  0-255ccSprite.setVisible(true);// 设置不可显示// 把精灵添加到图层上 

CCNode

是 场景 图层 和精灵的基类

  1. ccp(float x,float y) 静态方法 创建一个点
  2. this.addChild(ccSprite);
  3. this.addChild(ccSprite, z); // 2 优先级
  4. this.addChild(ccSprite, 1, 10);// 参数3 标签

动作的处理,CCAction

时间是秒

CCMoveTo ccMoveTo=CCMoveTo.action(2,CCNode.ccp(200, 0));//参数1;移动的时间,单位秒,参数2:移动的距离

1.CCFiniteTimeAction 和时间相关的动作

CCInstantAction   瞬时动作    闪现 
CCIntervalAction  延迟动作  疾跑

2.CCFollow 跟随动作
3.CCRepeatForever 永不停止的循环

    CCRepeatForever forver=CCRepeatForever.action(sequence);

4.CCSpeed 和速度相关的动作

各种动作

moveTo和moveBy的区别:

1.to 移动到指定目的地;2.by 移动的坐标的改变

1 to没有相反的动作;2.by 有相反动作

CCSequence 串行动作

CCMoveBy ccMoveBy=CCMoveBy.action(2,CCNode.ccp(200, 0));//参数1;移动的时间,单位秒,参数2:移动的距离CCMoveBy reverse=ccMoveBy.reverse();CCSequence sequence=CCSequence.actions(ccMoveBy,reverse);//串行动作,sprite.runAction(sequence);

跳跃动作

    CCJumpBy ccJumpBy=CCJumpBy.action(2,ccp(200,200),50,1);sprite.runAction(ccJumpBy);

旋转和缩放
>
缩放:
CCScaleBy ccScaleBy=CCScaleBy.action(1,0.5f);//基于锚点进行缩放


旋转:CCRotateBy和CCRotateTo都可以,同时CCRotateTo更实用(翻转120度)

贝赛尔曲线运动

CCBezierConfig cc=new CCBezierConfig();cc.controlPoint_1=ccp(0,0);cc.controlPoint_2=ccp(100,100);cc.endPosition=ccp(200,0);CCBezierBy bezierBy=CCBezierBy.action(2,cc);getSprite().runAction(bezierBy);

淡入淡出

CCFadeIn  fadeIn=CCFadeIn.action(10);getSprite().runAction(fadeIn);

加速度

CCMoveTo cmt=CCMoveTo.action(10,CCNode.ccp(200,0));CCEaseOut easeOut=CCEaseOut.action(cmt,10);//让移动按照一定加速度去移动getSprite().runAction(easeOut);

颜色渐变
CCLabel,专门用来显示文字的精灵

CCLabel label=CCLabel.labelWithString("指令汇最棒", "hkbd.ttf", 24);label.setColor(ccc3(50,0,255));label.setPosdition(200,200);this.adChild(label);ccColor3B c=ccc3(100,255,-100);CCTintBy cb=CCTintBy.action(1, c);CCTintBy reverse=cb.reverse();CCSequence seq=CCSequence.actions(cb, reverse);CCRepeatForever forver=CCRepeatForever.action(seq);label.runAction(forver);

闪硕

CCBlink blink=CCBlink.action(3, 3);getSprite().runAction(blink);   

复杂的动作

  1. CCSpawn 并行动作
  2. CCSequence 串行动作
  3. CCRepeatForever 永不停止的循环

private void JumpBy() {// 1 时间  单位秒 2 目的地   3 高出的高度  4 跳跃的次数CCJumpBy ccJumpBy=CCJumpBy.action(4, ccp(200, 100), 100, 2);CCRotateBy ccRotateBy=CCRotateBy.action(2, 360);// 并行动作CCSpawn ccSpawn=CCSpawn.actions(ccJumpBy, ccRotateBy);//并行起来了   跳跃的过程中伴随着旋转//CCJumpBy reverse = ccJumpBy.reverse();CCSequence sequence=CCSequence.actions(ccSpawn, ccSpawn.reverse());// 跳上去 跳回来(伴随着旋转) CCRepeatForever forever=CCRepeatForever.action(sequence);// 让串行动作 永不停止循环了CCSprite sprite = getSprite();sprite.setAnchorPoint(0.5f, 0.5f);  sprite.setPosition(50, 50);sprite.runAction(forever);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

禁用CMFCRibbonApplicationButton的单击和双击事件

为了禁用CMFCRibbonApplicationButton的单击和双击事件,我重载了CMFCRibbonApplicationButton如下: 1. MyRibbonApplicationButton.h文件内容: #pragma once class CMyRibbonApplicationButton : public CMFCRibbonApplicationButton{public: CMyRibbonA…

.net core 抛异常对性能影响的求证之路

一、前言在.net 社区中曾经听到过很多关于大量抛异常会影响性能这样的结论,心中一直就存在各种疑问。项目中使用自定义异常来处理业务很爽,但是又担心大量抛业务异常存在性能问题。查阅了各种文档,微软官方对性能优化这一块也不建议使用过多的…

Android Bootloader LittleKernel的两篇文章 【转】

转自:http://blog.csdn.net/loongembedded/article/details/41747523 2014-12-05 14:37 3599人阅读 评论(2) 收藏 举报分类:Android Bootloader(68) Android 开发之 ---- bootloader (LK) LK是什么 LK 是 L…

Android Fragment 监听返回键

直接给代码*-* Fragment: public boolean onKeyDown(int keyCode, KeyEvent event){if ((keyCode KeyEvent.KEYCODE_BACK)){//执行操作((MainActivity) Objects.requireNonNull(getActivity())).viewPager.setCurrentItem(3); }return true;} MainActivity&#…

C语言试题三十三之比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 请编写函数…

一、首页第一个首页栏制作【仿淘票票系统前后端完全制作(除支付外)】

首页一共分为3个页面,分别是首页: 影院: 我的: 一、标题头制作 首先我们新建一个 web 相对应用,随后点击前台,在前台新建一个页面: 接着给予这个页面一个背景色: 为了使页面…

【CASS精品教程】Win 10操作系统CAD 2006+CASS 7.1安装图文经典教程(附安装包下载)

目前大多数机器的操作系统是Win10,然而Win10系统下安装软件就不如Win XP或Win 7下那么顺畅。作为一个GISer,软件的熟练安装是基本功,因此本文就以Win0系统为例,演示CAD 2006+CASS 7.1的安装过程,文末附CAD 2006+CASS 7.1安装包下载。 目录 一、软件准备: 1. CAD 2006 2…

teamviewer 过期解决办法

teamviewer 过期解决办法 参考资料: http://blog.csdn.net/z249683156/article/details/41842271posted on 2015-12-21 13:32 雪山看雪 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/zker/p/5063164.html

静态 非静态代码块和构造器的执行顺序测试方法

public class Test { static{ System.out.println("静态区"); } { System.out.println("非静态!"); } private int i; public Test(int i) { super(); this.i i; } public Test() { System.out.println("构造器!!&…

C# 11 更加实用的 nameof

C# 11 更加实用的 nameofIntro从 C# 6.0 开始,我们可以开始使用 nameof 来引用参数名称,在可能使用 nameof 的地方,一般都推荐使用以便于重构时的自动更新,在之前的 C# 版本中,如果想要在方法参数中或者方法 attribute…

【玩转SQLite系列】目录收藏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010785585/article/details/53326323 转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53326323 本文出自【DylanAndroid的博客】 【玩转S…

二、首页影院/我的 栏制作《仿淘票票系统前后端完全制作(除支付外)》

页面效果,影院内容: 我的页分为登录、注册、我的,如果登录了那么就显示我的页面否则显示登录页。 登录页: 我的页: 一、标题头部制作 接着我们点击影院,发现当前页内容为空: 我们的影院页…

C语言试题三十四之求除1到m之内(含m)能北7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 请编写一个…

【数据库系统经典案例】销售系统数据库分析及完整实现过程

文章目录 一、产品表以及产品添加更新二、顾客管理三、销售记帐四、统计问题一、产品表以及产品添加更新 GOODLUCK的产品表:PRODUCTS(PNO,PNAME,PR,QTY) 从该表可以知: PNO->PNAME、PR、QTY 所以这个表只能按产品编号增加行,也就是说:有新产品了,可以在这个表中…

------shell学习

dd #!/bin/bash echo Hello World!array(a b 3 "ch") for i in array;doecho ${array[i]} doneecho ${array[*]} echo ${#array[]} #--------------------------------------- vers$(uname -r) #括号表示括号里面的内容先执行 等同于反引号 echo ${vers} read -p &qu…

PPT如何让多对象排列整齐

在某幻灯片上插入了多个对象,如果希望快速让它们排列整齐,按住Ctrl键,依次单击需要排列的对象,再选择“绘图-对齐或分布”,最后在排列方式列表中任选一种合适的排列方式就可实现多个对象间隔均匀的整齐排列。 本文转自…

聊聊 C# 方法重载的底层玩法

最近在看 C 的方法重载&#xff0c;我就在想 C# 中的重载底层是怎么玩的&#xff0c;很多朋友应该知道 C 是不支持重载的&#xff0c;比如下面的代码就会报错。#include <stdio.h>int say() {return 1; } int say(int i) {return i; }int main() {say(10);return 0; }从错…

Nginx图片剪裁模块探究 http_image_filter_module

#yum install -y gd-devel Install add http_image_filter_module Module #./configure --prefix/usr/local/nginx_image_filter/ --with-http_image_filter_module #make && make install use: off:关闭模块处理 test:确保图片是jpeg gif png否则返415错误 size:输出有…

Android WebView 图片超出宽度自适应,点击查看大图

webView 配置 WebSettings webSettings webView.getSettings(); webSettings.setJavaScriptCanOpenWindowsAutomatically(true);webSettings.setDomStorageEnabled(true);webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);//自适应屏幕 ☆…

C语言试题三十五之找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。主函数中x是数组名,n 是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 请编写一个…