【转】【2048强势来袭】第五期:游戏自动生成随机卡片

我们都知道在2048这个游戏中,卡片会自动随机生成。那么现在我们就来完成这一部分的功能。

1. 声明自动生成卡片函数

在HelloWorldScene.h中,我们需要声明自动生成卡片函数

  1. //自动生成卡片
  2. void autoCreateCardNumber(); 

2. 具体实现函数

在HelloWorldScene.cpp中,我们来具体实现自动生成卡片这个函数

  1. //自动生成卡片
  2. void HelloWorld::autoCreateCardNumber() 
  3. int i = CCRANDOM_0_1()*4; 
  4. int j = CCRANDOM_0_1()*4; 
  5. //判断是否这个位置已存在卡片
  6. if(cardArr[i][j]->getNumber() > 0) 
  7.     { 
  8.         autoCreateCardNumber(); 
  9.     } 
  10. else
  11.     { 
  12.         cardArr[i][j]->setNumber(CCRANDOM_0_1()*10 < 1 ? 2: 4); 
  13.     } 

除了要生成在随机位置上之外,我们还要先判断这个位置是否已经存在卡片了。如果已经存在卡片了,我们还要再调用一次这个函数。如果不存在的话,我们就在这个位置上产生一个2或者4.

3. 调用函数

在init()函数中,我们来调用这个函数。我们可以在游戏刚开始的时候,创建两个卡片,所以调用两次这个函数:

  1. //创建2张自动生成卡片
  2. autoCreateCardNumber(); 
  3. autoCreateCardNumber(); 

最后要特别感谢一下帅印。

 

原文地址:http://blog.csdn.net/legendof1991/article/details/23777183

共有 0 条评论

Top