• Cocos2d-x学习-郝盟主的《城市跑酷》分析学习 (一)GameSprite类


    1.重写了CCSprite类

    头文件:

    /*
        文件名:    GameSprite.h
        描 述:    游戏中定义的一些精灵类
        创建人:    郝萌主 (博客:http://blog.csdn.net/haomengzhu)
    
        创建日期:   2013.12.05
    */
    #ifndef __GAMESPRITE_H__
    #define __GAMESPRITE_H__
    
    #include "cocos2d.h"
    
    
    USING_NS_CC;
    enum {
    
    	kBackground,//背景层
    	kMiddleground,//中间层
    	kForeground //最上层
    };
    enum {
        kSpritePlayer,
        kSpriteTerrain,
        kSpriteBlock,
        kSpriteChimney,
        kSpritePuff
    };
    
    class GameSprite : public CCSprite {
    
    protected:
    	CCSize _screenSize;
    
    public:
    
    	//定义变量,并且直接定义默认的get/set方法
         /*  CC_SYNTHESIZE注解

          CC_SYNTHESIZE(类型名,变量名,get/set名)

          CC_SYNTHESIZE宏的作用,声明一个变量和其get/set方法

         */

    	CC_SYNTHESIZE(CCPoint, _nextPosition, NextPosition);
    
    	CC_SYNTHESIZE(float, _width, Width);
    
    	CC_SYNTHESIZE(float, _height, Height);
    
    	CC_SYNTHESIZE(CCPoint, _vector, Vector);
    
    	GameSprite(void);
    	~GameSprite(void);
    
    	//内联虚函数,只是一个接口
    	inline virtual void place () { this->setPosition(_nextPosition); };
    
          inline virtual float radius () {
            return _width * 0.5f;
          }
    	inline void setSize() {
    		_width = this->boundingBox().size.width;
    		_height = this->boundingBox().size.height;
    	}
        /*
                Sprite类的boundingBox 方法:
    CCRect  boundingBox (void)
      Returns a "local" axis aligned bounding box of the node. More...

        */ }; #endif // __GAMESPRITE_H__

    GameSprite.cpp

    /*
        文件名:    GameSprite.cpp
        描 述:    游戏中定义的一些精灵类
        创建人:    郝萌主 (博客:http://blog.csdn.net/haomengzhu)
    
        创建日期:   2013.12.05
    */
    #include "GameSprite.h"
    
    USING_NS_CC;
    
    /*
      初始化GameSprite类中的_vector和_screenSize
    */ GameSprite::GameSprite(
    void) :_vector(ccp(0,0)) ,_screenSize(CCDirector::sharedDirector()->getWinSize()) { } GameSprite::~GameSprite(void){}
  • 相关阅读:
    Hibernate4学习day0--hibernate封装--注解--单元测试
    Hibernate4学习day01--简介--基本配置
    java基础day13---引用数据类型
    java基础day14---static关键字-----继承
    java基础day12---this 关键字-----参数传递
    day05 Struts2文件上传和下载---防重复提交
    java基础day11---空指针异常----引用类型--自定义类型赋值--封装
    java基础的第二轮快速学习!day10
    Struts2,大爷你好!第四天
    java基础的第二轮快速学习!day09
  • 原文地址:https://www.cnblogs.com/hezijian/p/3739346.html
Copyright © 2020-2023  润新知