win 10 + vs2017+C++的运行环境练习的2048游戏(附源码)

使用C++和Cocos2d在Visual Studio 2017环境下开发的2048游戏,附带完整源码。通过删除默认demo,创建CardSprite类并实现游戏逻辑,详细步骤和代码注释清晰。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习cocos2dx练习的2048游戏!练习做完了很久,是跟写的,似懂非懂的,最近感觉又所顿悟。自己就在没看教程的前提下再次写了一次。把源码都放上来了,自己觉得注释清楚了的,有想交流的请留言,请不吝留言狠批,欢迎大家来喷!!!!!!!!!!!

 

首先创建项目:cocos new TZFE -p com.xxx.tzfe -l cpp -d d:\cocos

首先把demo中部需要的代码删除掉:


 

bool HelloWorld::init()
{
    if ( !Scene::init() )
    {
        return false;
    }

}

也就是这个函数(方法)保留成这样就行,然后编译运行一下,显示的已经是空项目就好了。

 

新建CardSprite.h和CardSprite.cpp两个文件:承载数字格子用的

 

CardSprite.h::::文件代码如下:

#ifndef _CARDSPRITE_H_
#define _CARDSPRITE_H_
#pragma once
#include "cocos2d.h"
class CardSprite:public cocos2d::Sprite
{
public:
    /*
    1.number 显示的数字
    2.width 单元格的宽
    3.height 单元格的高
    4.CardSpriteX 单元格的x轴
    5.CardSpriteY 单元格的Y轴
    */
    static CardSprite *createCardSprite(int numbers,int width,int height,float CardSpriteX,float CardSpriteY);
    virtual bool init();
    CREATE_FUNC(CardSprite);

    //设置数字
    void setNumber(int num);
    //获取数字
    int getNumber();

private:
    //定义数字
    int number;
    //初始化方法
    void enemyInit(int numbers, int width, int height, float CardSpriteX, float CardSpriteY);
    //定义显示的数字的控件
    cocos2d::Label *lableCardSpriteNumber;
    //定义单元格的背景
    cocos2d::LayerColor *labyerCardSpriteBG;
};


#endif // !_CARDSPRITE_H_


 

 

再完善CardSprite.cpp文件代码如下:

#include "CardSprite.h"
USING_NS_CC;
/*
1.number 显示的数字
2.width 单元格的宽
3.height 单元格的高
4.CardSpriteX 单元格的x轴
5.CardSpriteY 单元格的Y轴
*/
CardSprite *CardSprite::createCardSprite(int numbers, int width, int height, float CardSpriteX, float CardSpriteY)
{
    CardSprite *enemy = new CardSprite();
    if (enemy&&enemy->init())
    {
        enemy->autorelease();
        enemy->enemyInit(numbers,width, height,CardSpriteX, CardSpriteY);
        return enemy;
    }
    else
    {
        delete enemy;
        enemy = NULL;
        return NULL;
    }
}
bool CardSprite::init()
{
    if (!Sprite::init())
    {
        return false;
    }
    return true;
}

//设置数字
void CardSprite::setNumber(int num)
{
    number = num;


    //判断数字的大小来设置字体的大小
    if (number >= 0)
    {
        lableCardSpriteNumber->setSystemFontSize(40);
    }
    if (number >= 16)
    {
        lableCardSpriteNumber->setSyst
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值