当前位置: 编程技术>移动开发
本页文章导读:
▪coco2d-x 2.0学习系列(2):基本概念 coco2d-x 2.0学习系列(二):基本概念
基本概念
0.导演(CCDirector)
在cocos2d-x引擎中,CCDirector类是整个游戏的组织和控制核心,游戏的运行规则,游戏内的CCScene(场景)、布景(CCLayer)、角色(C.........
▪ 设立打开新Activity的动画效果 设置打开新Activity的动画效果
先来看贴图,点击打开另一个Activity的动画效果
package com.jay.demo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
impor.........
▪ libgdx范例metagun代码分析(一) libgdx实例metagun代码分析(一)
最近看android下的游戏开发,看了《Beginning Android Game》,顺便研究了下libgdx框架,看了下metagun源码,整体结构还是比较简单的,但是里面涉及到的数字运算还是比.........
[1]coco2d-x 2.0学习系列(2):基本概念
来源: 互联网 发布时间: 2014-02-18
coco2d-x 2.0学习系列(二):基本概念
基本概念 0.导演(CCDirector) 在cocos2d-x引擎中,CCDirector类是整个游戏的组织和控制核心,游戏的运行规则,游戏内的CCScene(场景)、布景(CCLayer)、角色(CCSprite)等的运动, 均由CCDirector管理,其在游戏中起着指定游戏规则让游戏内的场景、布景和任务有序的运行。在整个游戏里面,一般只有一个导演,游戏开始和结束时, 都需要调用CCDirector的方法完成游戏初始化或销毁工作,其提供了一些场景管理的方法,如runWithScene、DrawScene、pushScene和replaceScen等。 它控制FPS的显示隐藏,窗口大小,游戏的进入,退出,关卡的切换,取得正交模式,取得正在运行的场景,取得GL视图,游戏主循环入口等等 不同的场景由不同的层组成,每个层又包含精灵在上面运动。玩家玩游戏的过程就是在操作层上的精灵或者菜单项,从而在不同的场景中切换。 导演负责不同场景的切换,导演通常只有一个,因此这个对象是单例(singleton)。 任何时间,只有一个CCScene对象实例处于激活状态。 CCDirector类的2大任务: 设置主程序窗口的显示属性 初始化CCDirector对象 CCDirector *pDirector = CCDirector::sharedDirector(); 设置是否显示FPS pDirector->setDisplayFPS(true); 设置游戏画面每秒的帧数 pDirector->setAnimationInterval(1.0 / 60); 管理显示场景 CCDirector对象一次只能显示一个场景。为了便于管理场景对象,CCDirector对象有3个属性与场景有关 /* 当前显示的场景 */ CCScene *m_pRunningScene; /* 下一个将要显示的场景 */ CCScene *m_pNextScene; /* 待执行的场景队列 */ CCArray* m_pobScenesStack; 管理场景方法 /* 用来显示主程序启动后的第一个场景,如果已存在运行的场景,则不可使用 */ void runWithScene(CCScene *pScene); /* 挂起当前正在运行的场景,压入待执行场景队列,并开始执行新的场景 */ void pushScene(CCScene *pScene); /* 从待执行场景队列中弹出一个场景,并以此取代当前运行中的场景。 如果待执行场景队列已为空,那么程序将终止运行。 */ void popScene(void); /* 直接用一个场景取代当前场景,这是最常用的一个方法。 */ void replaceScene(CCScene *pScene); /* 结束运行,释放当前场景。 */ void end(void); /* 暂停场景运行。画面还存在,但时间任务停止。 */ void pause(void); /* 恢复场景运行。 */ void resume(void); 1.场景(CCScene) 展示类场景:播放视频 图像文字输出 游戏介绍 胜利失败提示 帮助说明 选项类场景:主菜单 游戏设置 关卡选择 游戏场景:游戏的主要内容 2.层(CCLayer) 实现游戏的内容,一个场景一半包括多个层。 CCLayer的主要功能在于: 1)接收触摸(touch)操作输入。 2)接收动力感知(Accelerometer)输入。 CCLayerColor(颜色层) CCLayerGradient(渐变层) CCLayerGradient是CCLayerColor的子类,可以在背景上绘制渐变色。 CCMenu(菜单层) CCLayerMultiplex(复合层) 3.精灵(CCSprite) 精灵是整个游戏开发处理的主要对象 精灵就是一个可以不断变化的图片。这些变化包括:位移、旋转、缩放以及图片帧的切换 4.摄像机(CCCamera) 游戏中每个节点都需要摄像机,当节点发生缩放,旋转和位置变化时,都需要覆盖摄像机,让这个节点通过摄像机进行重新渲染。 官方对于摄像机的描述是这样的:CCCamera应用于每个CCNode中。 在从不同视野观察时起作用,OpenGL中的gluLookAt函数用来定位摄像机。 假如这个物体通过绽放、旋转、或者平移,那么这些操作将修改摄像机。 注意:使用摄像机或者操作旋转、绽放、平移等属性,你只能选其中一个,假如你使用摄像机,世界坐标就会失去作用。 局限性: 几种节点,如CCParallaxNode,CCParticle使用世界节点坐标,并且他们并不能正常工作,假如你使用摄像机移动他们(或者他们的任何父类)。 在成批的结点上(即一个结点上包含多个节点)如CCSprite对象不会正常工作当他们都从属于一个CCSpriteBatchNode对象时。 推荐你只在创建3d特效时使用。对于2d特效来说,用CCFollow动作或者平移、绽放、旋转更好。 5.动作(CCAction) 角色所具有的动作,一般用于精灵发生动作时使用,如移动,释放魔法等。 总体关联结构 导演--1~n-->场景--1~n-->层--1~n-->精灵--1~n-->动作
[2] 设立打开新Activity的动画效果
来源: 互联网 发布时间: 2014-02-18
设置打开新Activity的动画效果
先来看贴图,点击打开另一个Activity的动画效果
package com.jay.demo; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class HomeActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout1); Button gotoBtn = (Button) findViewById(R.id.gotobtn); gotoBtn.setOnClickListener(listener); } private OnClickListener listener = new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(HomeActivity.this, SecondActivity.class); startActivityForResult(intent, 0); // HomeActivity.this.finish(); int version = Integer.valueOf(android.os.Build.VERSION.SDK); if(version > 5 ){ overridePendingTransition(R.anim.zoomin, R.anim.zoomout); } // HomeActivity.this.finish(); } }; }
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator"> <scale android:fromXScale="0.1" android:toXScale="1.0" android:fromYScale="0.1" android:toYScale="1.0" android:pivotX="50%p" android:pivotY="50%p" android:duration="3000" /> <!-- 这里为了看到动画演示效果,把动画持续时间设为3秒 --> <alpha android:fromAlpha="0.1" android:toAlpha="1.0" android:duration="1000" /> </set>
[3] libgdx范例metagun代码分析(一)
来源: 互联网 发布时间: 2014-02-18
libgdx实例metagun代码分析(一)
最近看android下的游戏开发,看了《Beginning Android Game》,顺便研究了下libgdx框架,看了下metagun源码,整体结构还是比较简单的,但是里面涉及到的数字运算还是比较吃力,把自己对源码的理解写下来备忘
整体类结构
1.应用程序全局类
Metagun:主应用程序类,render渲染,在render进行窗口渲染和维护时钟周期;
Art:游戏图片资源加载类;
Sound:游戏资源加载类,全部是wav,sound文件,没有什么可说的;
Stats:游戏过程中的状态信息类;
Input:输入监听器,实现了InputProcessor,接收所有输入事件的回调;
2.窗口类
抽象类Screen,类关系图
3.实体类
抽象实体类 Entity
4.等级类
Level:实现地图加载,视角移动;
最新技术文章: