zoukankan      html  css  js  c++  java
  • 【cocos2d-x不要在生产白片步骤】第二项:制作Block分类

    由于游戏非常多使用阻断,因此,我们创建了一个单独的类中Block。


    于Blcok.h声明了两个初始化函数:

    	static Block* createWithArgs(Color3B color, Size size, std::string label, float fontSize, Color4B textColor);
    
    	//初始化參数:方块颜色、方块大小、字、字体大小、字体颜色
    	virtual bool initWithArgs(Color3B color, Size size, std::string label, float fontSize, Color4B textColor);

    由于方块有涉及到颜色、大小、字、字体大小、字体颜色,所以我们把这些都写进了參数里面。


    用Vector来存放block,便于管理

    	//用来存放block
    	static Vector<Block*> * blocks;

    在cpp中文件来详细实现这两个函数以及blocks:

    //初始化blocks
    Vector<Block*> * Block::blocks = new Vector<Block*>();
    
    Block* Block::createWithArgs(Color3B color, Size size, std::string label, float fontSize, Color4B textColor)
    {
    	auto b = new Block();
    	b->initWithArgs(color, size, label, fontSize, textColor);
    	b->autorelease();
    
    	//将b加入到blocks中
    	blocks->pushBack(b);
    
    	return b;
    }
    
    //初始化參数:方块颜色、方块大小、字、字体大小、字体颜色
    bool Block::initWithArgs(Color3B color, Size size, std::string label, float fontSize, Color4B textColor)
    {
    	Sprite::init();
    
        //设置大小
    	setContentSize(size);
    	//设置锚点为左下角
    	setAnchorPoint(Point::ZERO);
    	//设置区域
    	setTextureRect(Rect(0, 0, size.width, size.height));
    	//设置颜色
    	setColor(color);
    
    	//设置文字
    	auto myLabel = Label::create();
    	myLabel->setString(label);
    	myLabel->setSystemFontSize(fontSize);
    	myLabel->setTextColor(textColor);
    	addChild(myLabel);
    	myLabel->setPosition(size.width/2, size.height/2);
    
    	return true;
    }

    另外还需一个函数来移除Vector中的block

    //从Vector中移除blocks
    void Block::removeBlock()
    {
    	removeFromParent();
    	blocks->eraseObject(this);
    }




    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    什么是模板方法模式?
    在多线程环境下,SimpleDateFormat 是线程安全的吗?
    抽象类是什么?它与接口有什么区别?你为什么要使用过 抽象类?
    依赖注入和工程模式之间有什么不同?
    什么时候使用访问者模式?
    Java 中,受检查异常 和 不受检查异常的区别?
    说出 5 个 JDK 1.8 引入的新特性?
    什么是领域驱动设计?
    列举 IoC 的一些好处?
    什么是 Spring 配置文件?
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4940382.html
Copyright © 2011-2022 走看看