虫虫教学

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 579|回复: 0

泡泡连连打

[复制链接]

4449

主题

4659

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
41710

最佳新人发帖达人推广达人热心会员突出贡献优秀讲师

发表于 2021-10-15 18:31:47 | 显示全部楼层 |阅读模式
   泡泡连连打
        游戏泡泡连连打是以6个泡泡为一组,一共由30组组成,当用相同的泡泡连接到一起时,用户双击泡泡可以将泡泡打掉,一次打掉的泡泡越多,用户获得的分数越高,在没有相连的泡泡时,程序会计算剩余的泡泡数量判断是否加分,剩余的泡泡越少加的分数越多,当用户的得分超过通关分数时可以进入下一关的游戏,本实例通过Visual C++制作了泡泡连连打游戏。运行本实例,单击“开始”按钮进入游戏界面,双击相连的泡泡可以得分,,效果如图1所示。
                           
           

关键技术
在设计泡泡连连打游戏时,首先要设置6种图片,每种30个,将这些图片打乱随机进行排列,当用户选中一个图片时,程序要判断当前图片的上下左右4个方向上是否有相同的图片,如果有则全部设置为选中状态,用户单击处于选中状态下的图片时可以删除这些图片,在删除图片上方的图片会自动下降填补空位,如果整个一列都没有图片,则右侧的图片自动向左移动填补空位,程序会根据处于选中状态的图片数量计算分数,选中的越多得分越多,当所有相同的图片都没有连接在一起时,计算剩余的图片数量,图片剩的越少加分越多,最后根据用户的得分与通关分数的比较结果判断用户是否可以进入下一关进行游戏。
设计过程
(1)新建一个基于对话框的应用程序,将其窗体标题改为“泡泡连连打”。
(2)向对话框中添加8个静态文本控件和一个按钮控件。
(3)添加自定义函数BubbleDown,该函数用于出现空位时,使上方的泡泡自动向下移动填补空位,其实现代码如下:
void CHitBubbleDlg::BubbleDown()
{
      for(int j=0; j<col-1;j++)
      {
            for(int n=row-2;n>=0;n--)
            {
                  for(int i=row-2;i>=0;i--)
                  {
                        if(m_Bubble[j].m_Color == NULLBUBBLE)  //如果是空位

                        {
                              BUBBLE* tmp = m_Bubble[j].m_pRecents[0]; //获得当前泡泡的上方泡泡
                              if(tmp != NULL)                                     //如果上方泡泡不为空
                              {
                                    m_Bubble[j].m_Color = tmp->m_Color;//将上方泡泡值传给当前空位
                                    tmp->m_Color = NULLBUBBLE; //设置上方泡泡为空位
                              }
                        }
                  }
            }
      }
}
秘笈心法
心法领悟593:加载位图资源
CBitmap类的LoadBitmap方法可以加载资源中的位图,位图在资源中都有一个ID值,这个ID值定义在头文件Resource.h中,例如语句LoadBitmap(IDB_BUBBLE1+i)中ID值IDB_BUBBLE1在头文件内被定义为一个整数,所以ID值可以进行加法运算,利用这个原理可以利用循环对位图进行加载。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|虫虫教学--虫虫联盟官网

GMT+8, 2025-4-28 23:40 , Processed in 0.564997 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表