c++中outtextxy_第10章 十字消除(《C和C++游戏趣味编程》配套教学视频)

f3a629e4f4d68dfc0182e13b08371d64.png

(图书介绍:童晶:《C和C++游戏趣味编程》新书预告)

本章我们将编写十字消除游戏,用户点击空白方块,沿其上下左右方向寻找第一个彩色方块,如果有两个或两个以上颜色一致,就将其消除。在进度条时间结束前消除足够的方块,可以进入下一关,效果如图所示。

首先实现随机颜色方块的表示与绘制,鼠标点击与十字消除算法;然后绘制了提示框,绘制倒计时进度条;接着进行了得分计算、胜负判断、多关卡功能的开发;学习了地址与指针的概念,并利用地址传递使得程序更加模块化;最后学习了指针和数组的知识,应用动态数组实现了游戏尺寸的动态大小调整。

知乎视频​www.zhihu.com

讲解视频:

知乎视频​www.zhihu.com

最终代码:

#include 

这一章主要讲解了指针的相关语法知识,学习了倒计时的方法,实现了十字消除游戏。读者可以尝试在本章代码基础上继续改进:

1、实现随着游戏的进行,通过关卡要求消除方块的比例越来越高;

2、利用文件读写,实现关卡数据与最高分的记录与读取。

读者也可以参考本章的开发思路,尝试设计并分步骤实现消消乐、消灭星星、宝石迷阵等各种消除类游戏。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你的问题。 首先,需要下载安装DevC++和EGE图形库。 安装完毕后,打开DevC++,依次点击“文件”->“新建”->“项目”,选择“Windows应用程序”并填写项目名称,点击“确定”。 接下来,我们需要编写代码。以下是一个简单的飞机大战小游戏的示例代码: ```c #include <graphics.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <time.h> #define WIDTH 480 #define HEIGHT 700 int main() { initgraph(WIDTH, HEIGHT); setbkcolor(WHITE); cleardevice(); srand(time(NULL)); int x = rand() % (WIDTH - 50) + 25; int y = HEIGHT - 50; int score = 0; int speed = 1; while (1) { setfillcolor(BLACK); fillrectangle(0, 0, WIDTH, HEIGHT); setcolor(WHITE); settextstyle(20, 0, "Consolas"); char score_str[10]; sprintf(score_str, "Score: %d", score); outtextxy(10, 10, score_str); setfillcolor(WHITE); fillrectangle(x - 25, y - 25, x + 25, y + 25); y -= speed; if (y < -25) { x = rand() % (WIDTH - 50) + 25; y = HEIGHT - 50; score++; speed++; } if (kbhit()) { char ch = getch(); switch (ch) { case 'a': x -= 5; break; case 'd': x += 5; break; } } if (x < 25) { x = 25; } else if (x > WIDTH - 25) { x = WIDTH - 25; } Sleep(10); } closegraph(); return 0; } ``` 这段代码使用了EGE图形库,创建了一个窗口,然后在窗口绘制了一个飞机和一些随机生成的敌机,并且通过按键控制飞机的移动,当敌机飞出窗口时,会重新生成一个新的敌机,并且加分数、加速度。 最后,我们可以通过编译和运行程序来看到游戏的效果。 希望这个回答能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值