当前位置:  编程技术>移动开发
本页文章导读:
    ▪coco2d-x 2.0学习系列(1):SimpleGame(1)        coco2d-x 2.0学习系列(一):SimpleGame(1) coco2d-x 2.0 与1.0版本有些细节的区别,网上的SimpleGame大部分是1.0的,导致采了很多的坑。 1.使用VS2010C创建Cocos2d-win32 Application,名为SimpleGame去掉Box2D选项。 2..........
    ▪ 展示虚拟内存统计信息        显示虚拟内存统计信息   原贴:http://docs.sun.com/app/docs/doc/819-6951/6n8ua61e1?l=zh&a=view 显示虚拟内存统计信息 (vmstat) 可以使用 vmsta 命令报告虚拟内存统计信息,以及有关系统事件(例如 CPU .........
    ▪ 动感超人的专号       动感超人的专栏 http://blog.csdn.net/5iasp ......

[1]coco2d-x 2.0学习系列(1):SimpleGame(1)
    来源: 互联网  发布时间: 2014-02-18
coco2d-x 2.0学习系列(一):SimpleGame(1)

coco2d-x 2.0 与1.0版本有些细节的区别,网上的SimpleGame大部分是1.0的,导致采了很多的坑。

1.使用VS2010C创建Cocos2d-win32 Application,名为SimpleGame去掉Box2D选项。

2.新建头文件SimpleGameScene.h和源文件SimpleGameScene.cpp

SimpleGameScene.h

 

#ifndef __SIMPLE_GAME_H__
#define __SIMPLE_GAME_H__
#include "cocos2d.h"
class SimpleGame:public cocos2d::CCLayerColor{
public:
	SimpleGame();
	~SimpleGame();
	virtual bool init();
	static cocos2d::CCScene* scene();
	virtual void menuCloseCallback(CCObject* pSender);
	void addEnemy();
	void spriteMoveFinished(cocos2d::CCNode *sender);
	void gameLogic(float dt);// 这个地方是个坑1.0版本使用的ccTime 2.0使用float替代
	CREATE_FUNC(SimpleGame);//这个地方也是坑1.0版本LAYER_NODE_FUNC
};

#endif

 SimpleGameScene.cpp

 

#include "SimpleGameScene.h"
using namespace cocos2d;
SimpleGame::SimpleGame(){}
SimpleGame::~SimpleGame(){}
CCScene* SimpleGame::scene(){
	CCScene* scene=NULL;
	do 
	{
		 scene=CCScene::create();
		CC_BREAK_IF(!scene);
		SimpleGame *layer=SimpleGame::create();
		CC_BREAK_IF(!layer);
		scene->addChild(layer);
	} while (0);
	return scene;
}
//初始化
bool SimpleGame::init(){
	bool bRet=false;
	do 
	{
		//初始化成功返回真
		CC_BREAK_IF(!CCLayerColor::initWithColor(ccc4(255,255,255,255)));//
		CCSize size=CCDirector::sharedDirector()->getWinSize();//屏幕宽度
		//添加游戏退出菜单
		CCMenuItemImage *pCloseItem = CCMenuItemImage::itemWithNormalImage(
			"CloseNormal.png",
			"CloseSelected.png",
			this,
			menu_selector(SimpleGame::menuCloseCallback));//创建菜单,并设置回调函数
		CC_BREAK_IF(!pCloseItem);
		pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width-20,20));//设置菜单位置
		CCMenu* pMenu=CCMenu::menuWithItems(pCloseItem,NULL);
		pMenu->setPosition(CCPointZero);
		CC_BREAK_IF(!pMenu);
		this->addChild(pMenu,1);//添加到simplegame layer
		//创建精灵
		CCSprite* hero=CCSprite::spriteWithFile("Target.png",CCRectMake(0,0,27,40));
		CC_BREAK_IF(! hero);
		hero->setPosition(ccp(hero->getContentSize().width/2,size.height/2));
		this->addChild(hero,0);
			this->schedule( schedule_selector(SimpleGame::gameLogic), 1.0 );//每隔一秒调用gameLogic()添加精灵
			bRet=true;
	} while (0);
	return bRet;
}
void SimpleGame::addEnemy(){
	CCSprite *enemy=CCSprite::spriteWithFile("Player.png",CCRectMake(0,0,27,40));
	CCSize winSize=CCDirector::sharedDirector()->getWinSize();
	int minY=enemy->getContentSize().height/2;
    int maxY=winSize.height-enemy->getContentSize().height/2;
	int rangeY=maxY-minY;
	int actualY=(rand()%rangeY)+minY;
	enemy->setPosition(ccp(winSize.width+enemy->getContentSize().width/2,actualY));
	this->addChild(enemy);

	int minDuration = 2;
	int maxDuration = 4;
	int rangeDuration = maxDuration - minDuration;
	int actualDuration = (rand() % rangeDuration) + minDuration;
	CCFiniteTimeAction *actionMove =
		CCMoveTo::actionWithDuration( (float)actualDuration,
		ccp(0 - enemy->getContentSize().width/2, actualY) );

	CCFiniteTimeAction *actionMoveDone = CCCallFuncN::actionWithTarget(this,callfuncN_selector(SimpleGame::spriteMoveFinished));
	enemy->runAction(CCSequence::actions(actionMove,actionMoveDone,NULL));
}
void SimpleGame::spriteMoveFinished(CCNode *sender)
{
	CCSprite *sprite = (CCSprite *)sender;
	this->removeChild(sprite,true);
}

void SimpleGame::gameLogic(float dt)
{
	this->addEnemy();
}

void SimpleGame::menuCloseCallback(CCObject* pSender)
{
	// "close" menu item clicked
	CCDirector::sharedDirector()->end();
}

 最后运行之前别忘了修改AppDelegate.cpp,把HelloWorldScene改成自己定义的SimpleGame。

 

CCScene *pScene = SimpleGame::scene();

 


    
[2] 展示虚拟内存统计信息
    来源: 互联网  发布时间: 2014-02-18
显示虚拟内存统计信息

  原贴:http://docs.sun.com/app/docs/doc/819-6951/6n8ua61e1?l=zh&a=view

显示虚拟内存统计信息 (vmstat)

可以使用 vmsta 命令报告虚拟内存统计信息,以及有关系统事件(例如 CPU 负载、分页、上下文切换数、设备中断和系统调用)的信息。vmstat 命令还可以显示有关交换、高速缓存刷新和中断的统计信息。

下表介绍了 vmstat 命令输出中的字段。

表 13–1 vmstat 命令的输出

 

类别

字段名

说明

procs

 

报告以下内容:

 

r

分发队列中的内核线程数

 

b

正在等待资源的阻塞内核线程数

 

w

正在等待处理中的资源完成的换出 LWP 数

memory

 

报告实际内存和虚拟内存的使用情况:

 

swap

可用交换空间

 

free

可用列表的大小

page

 

以秒为单位报告页面错误和分页活动:

 

re

回收的页面

 

mf

次要错误和主要错误

 

pi

页入的千字节数

 

po

页出的千字节数

 

fr

释放的千字节数

 

de

最近换入的进程所需的预计内存

 

sr

由 page 守护程序扫描的当前未使用的页数。如果 sr 不等于零,则 page 守护程序一直在运行。

disk

 

报告每秒的磁盘操作数,最多显示四个磁盘中的数据

faults

 

报告每秒的陷阱/中断速率:

 

in

每秒的中断次数

 

sy

每秒的系统调用数

 

cs

CPU 上下文切换速率

cpu

 

报告 CPU 使用时间:

 

us

用户时间

 

sy

系统时间

 

id

空闲时间

 

 

有关此命令的更多详细说明,请参见 vmstat(1M) 手册页。

如何显示虚拟内存统计信息 (vmstat)

 

  • 使用 vmstat 命令以秒为时间间隔单位收集虚拟内存统计信息。


    $ vmstat n
    

    其中,n 是两次报告之间的间隔秒数。

  • 示例 13–1 显示虚拟内存统计信息

     

    以下示例显示了以 5 秒为间隔收集的统计信息的 vmstat 显示。

     


    $ vmstat 5
    kthr      memory            page            disk          faults      cpu
     r b w   swap  free  re  mf pi po fr de sr dd f0 s1 --   in   sy   cs us sy id
     0 0 0 863160 365680  0   3  1  0  0  0  0  0  0  0  0  406  378  209  1  0 99
     0 0 0 765640 208568  0  36  0  0  0  0  0  0  0  0  0  479 4445 1378  3  3 94
     0 0 0 765640 208568  0   0  0  0  0  0  0  0  0  0  0  423  214  235  0  0 100
     0 0 0 765712 208640  0   0  0  0  0  0  0  3  0  0  0  412  158  181  0  0 100
     0 0 0 765832 208760  0   0  0  0  0  0  0  0  0  0  0  402  157  179  0  0 100
     0 0 0 765832 208760  0   0  0  0  0  0  0  0  0  0  0  403  153  182  0  0 100
     0 0 0 765832 208760  0   0  0  0  0  0  0  0  0  0  0  402  168  177  0  0 100
     0 0 0 765832 208760  0   0  0  0  0  0  0  0  0  0  0  402  153  178  0  0 100
     0 0 0 765832 208760  0  18  0  0  0  0  0  0  0  0  0  407  165  186  0  0 100

     

    如何显示系统事件信息 (vmstat -s)

     

  • 运行 vmstat -s 命令,以显示自上次引导系统以来发生的系统事件数。


    $ vmstat -s
            0 swap ins
            0 swap outs
            0 pages swapped in
            0 pages swapped out
       522586 total address trans. faults taken
        17006 page ins
           25 page outs
        23361 pages paged in
           28 pages paged out
        45594 total reclaims
        45592 reclaims from free list
            0 micro (hat) faults
       522586 minor (as) faults
        16189 major faults
        98241 copy-on-write faults
       137280 zero fill page faults
        45052 pages examined by the clock daemon
            0 revolutions of the clock hand
           26 pages freed by the clock daemon
         2857 forks
           78 vforks
         1647 execs
     34673885 cpu context switches
     65943468 device interrupts
       711250 traps
     63957605 system calls
      3523925 total name lookups (cache hits 99%)
        92590 user   cpu
        65952 system cpu
     16085832 idle   cpu
         7450 wait   cpu
  • 如何显示交换统计信息 (vmstat -S)

     

  • 运行 vmstat -S,以显示交换统计信息。


    $ vmstat -S
    kthr      memory            page            disk          faults      cpu
     r b w   swap  free  si  so pi po fr de sr dd f0 s1 --   in   sy   cs us sy id
     0 0 0 862608 364792  0   0  1  0  0  0  0  0  0  0  0  406  394  213  1  0 99

    以下列表介绍了交换统计信息字段。有关其他字段的说明,请参见表 13–1。

    si

    每秒换入的平均 LWP 数

    so

    换出的完整进程数

    注 –

    vmstat 命令会截断 si 和 so 字段的输出。应使用 sar 命令显示更精确的交换统计信息记录。

  • 如何显示每台设备的中断次数 (vmstat -i)

     

  • 运行 vmstat -i 命令,以显示每台设备的中断次数。

  • 示例 13–2 显示每台设备的中断次数

     

    以下示例显示 vmstat -i 命令的输出。

     


    $ vmstat -i
    interrupt         total     rate
    --------------------------------
    clock          52163269      100
    esp0            2600077        4
    zsc0              25341        0
    zsc1              48917        0
    cgsixc0             459        0
    lec0             400882        0
    fdc0                 14        0
    bppc0                 0        0
    audiocs0              0        0
    --------------------------------
    Total          55238959      105

     


        
    [3] 动感超人的专号
        来源: 互联网  发布时间: 2014-02-18
    动感超人的专栏
    http://blog.csdn.net/5iasp

        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3