BestAns

路漫漫其修远兮,吾将上下而求索

VC绘图/游戏简易教程--7:捕获按键,实现动画的简单控制

教程总目录:https://www.codeabc.cn/bestans/post/concise-lesson-contents(里面包括VC下的graphics.h的配置方法)

最常用的一个捕获按键的函数:_getch()
前几课,都把这个函数当做“按任意键继续”来用,现在我们用变量保存这个按键:

char c = _getch();

然后再做判断即可。

不过程序执行到 _getch() 是会阻塞的,直到用户有按键才能继续执行。可游戏中总不能因为等待按键而停止游戏执行吧?所以,要有一个函数,判断是否有用户按键:_kbhit()
这个函数返回当前是否有用户按键,如果有,再用 _getch() 获取即可,这样是不会阻塞的。

即:

char c;
if (_kbhit())
	c 

...

VC绘图/游戏简易教程--6:实现简单动画

教程总目录:https://www.codeabc.cn/bestans/post/concise-lesson-contents(里面包括VC下的graphics.h的配置方法)

所谓动画,其实是连续显示一系列图形而已。
结合到程序上,我们需要以下几个步骤:

  1. 绘制图像
  2. 延时
  3. 擦掉图像

循环以上即可实现动画。

举一个例子,我们实现一条直线从上往下移动:

#include <graphics.h>
#include <conio.h>

int main()
{
	initgraph(640, 480);

	for(int y = 0; y < 480; y++)
	{
		// 绘制绿色直线
		setlinec

...

VC绘图/游戏简易教程--5:数学知识在绘图中的运用

教程总目录:https://www.codeabc.cn/bestans/post/concise-lesson-contents(里面包括VC下的graphics.h的配置方法)

[学习目标]

理解数学的重要性

1. 最简单的,来个全屏的渐变色吧,是上一课的扩展。就是需要将 0~255 的颜色和 0~479 的 y 轴对应起来
c 表示颜色,范围 0~255
y 表示y轴,范围 0~479
于是:
c / 255 = y / 479
c = y / 479 * 255 = y * 255 / 479 (先算乘法再算除法可以提高精度)

看代码:

#include <graphics.h>
#include <conio.h>

int main()
{
	in

...

VC绘图/游戏简易教程--4:结合流程控制语句来绘图

教程总目录:https://www.codeabc.cn/bestans/post/concise-lesson-contents(里面包括VC下的graphics.h的配置方法)

[学习目标]

熟练使用循环、判断语句

[熟悉for语句]

这步需要自学,看看自己手边的书,是怎样讲for语句的,简单看看就行。

[范例]

例如,画10条直线的代码:

#include <graphics.h>
#include <conio.h>

int main()
{
	initgraph(640, 480);

	for(int y=100; y<200; y+=10)
		line(100, y, 300, y);

	_getch();
	closegraph();

...

VC绘图/游戏简易教程--3:熟悉更多的绘图语句

教程总目录:https://www.codeabc.cn/bestans/post/concise-lesson-contents(里面包括VC下的graphics.h的配置方法)

[学习目标]

学会更多的绘图语句

[常用的绘图语句]

  • line(x1, y1, x2, y2); // 画直线 (x1,y1)-(x2,y2),都是整形
  • circle(x, y, r); // 画圆,圆心为 (x,y),半径为 r
  • putpixel(x, y, c); // 画点 (x,y),颜色 c

还有很多,如画椭圆、圆弧、矩形、多边形,等等,请参考 EasyX 在线帮助 https://docs.easyx.cn

[设置颜色]

setlineco

...

VC绘图/游戏简易教程--2:简单绘图,学习单步执行

教程总目录:https://www.codeabc.cn/bestans/post/concise-lesson-contents(里面包括VC下的graphics.h的配置方法)

[本期目标]

学会简单绘图,并学会简单调试。

先看看上一课的代码,我加上了注释

#include <graphics.h>			// 绘图库头文件,绘图语句需要
#include <conio.h>				// 控制台输入输出头文件,_getch()语句需要

int main()
{
	initgraph(640, 480);		// 初始化640x480的绘图屏幕
	line(200, 240, 440, 240);	// 画线(200,240) - (440,240)
	line(320, 120, 320, 360);	// 画线(3

...

VC绘图/游戏简易教程--1:创建新项目

教程总目录:https://www.codeabc.cn/bestans/post/concise-lesson-contents (里面包括VC下的graphics.h的配置方法)

[本期目标]

学会在 VC 里面创建项目,并写简单的程序。

VC 写程序要有项目的概念,一个项目可以有多个 .cpp 文件,多个项目构成一个工作区。先记住这两个英文单词吧:

  • Workspace: 工作区
  • Project: 项目

现在开始创建一个新项目。

...

VC绘图/游戏简易教程--前言

针对人群

  • 职业不限,水平不限,男女不限。基本上,是从很基础的层次开始(但还是需要一点点基础)。

基础要求

  • 希望读者已经简单学过C语言。我不会从定义变量开始讲。
  • 要有英语基础,现阶段虽不是必须,但是学学英语总没错,以后有用。

学习目标

  • 能做简单的图形小游戏。
  • 讲解以简单实用为主,不要指望看了这几篇文章后就能过二级考试。
  • 目标,除了能做小游戏外,更重要的,是锻炼编程思想,以备将来做更大的程序。

学习方式

  • 以自学为主吧,有问题就在相关课程后面跟帖就行,一起讨论。

学习要求

  • 欲速则不达,不要指望一口气都看完,请务必每次看完后都写几个相关的程序。勤动手才能学好编程,请务必重视。

连载次数

  • 不确定,想到哪写到哪吧,我会把每次的文章目录发到这里。
...