制作小游戏--跳动的小球

本文介绍了如何使用VS配置图形库easyX实现小球的自由落体运动,包括反弹机制、颜色控制和基本动画绘制。通过实例演示了背景、填充和线条颜色的改变,以及键盘输入触发的反弹操作。

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

VS配置图形库:easyX在这里插入图片描述

Sleep(1000),表示暂停1000毫秒;
cleardevice()清屏函数
绘制一个圆形

#include<graphics.h>
#include<conio.h>
#include<stdio.h>
int main() {
	initgraph(600, 600);//初始化一个画布
	fillcircle(300, 300, 100);//(x,y),100指的是半径
	_getch();
	//scanf("%d",&a);
	closegraph();
	return 0;
}

添加至能够实现反弹效果,只需要将y轴的速度,反向vy=-vy,执行y=y+vy相当于将y逐渐变小,即实现了小球向上弹。

#include<graphics.h>
#include<conio.h>
#include<stdio.h>
int main() {
	int y = 50;//初始位置
	int vy = 3;//下降的速度
	initgraph(600, 600);//初始化一个画布
	while(1)
	{
		y += vy;
		if (y >= 580)
			vy = -vy;
			if(y<=20)
			vy=-vy;//实现反复弹跳
		cleardevice();
		fillcircle(300, y, 20);//(x,y),100指的是半径
		Sleep(10);
	}
	_getch();
	//scanf("%d",&a);
	closegraph();
	return 0;
}

更改背景颜色,画布颜色,填充颜色, 线条颜色

setbkcolor(WHITE);//设置背景色为白色
setlinecolor(RED);//设置线条颜色为红色
setfillcolor(GREEN);//设置填充颜色为绿色
cleardevice();//以背景颜色清空画布
setfillcolor(RGB(0,0,0));            // 设置填充颜色为黑色
setfillcolor(RGB(255,255, 255));    // 设置填充颜色为白色
setfillcolor(RGB(120, 120, 120));    // 设置填充颜色为灰色
setfillcolor(RGB(255,0,0));        // 设置填充颜色为红色
setfillcolor(RGB(100,0,0));        // 设置填充颜色为暗红色
setfillcolor(RGB(0,255,0));        // 设置填充颜色为绿色
setfillcolor(RGB(0,0,255));        // 设置填充颜色为蓝色
setfillcolor(RGB(255,255,0));        // 设置填充颜色为黄色

描述颜色,也可采用数字的形式,(R,G,B)0为最暗,255为最亮
在这里插入图片描述
实现自由落体,小球能够碰到底部反弹,并且有阻力加持,

#include <graphics.h>  
#include <conio.h>
#include <stdio.h>
int main()
{
	float y = 100;
	float vy = 0;
	float g = 0.5;
	initgraph(600, 600);
	while(1){
		cleardevice();
		vy = vy + g;
		y += vy;
		if (y >= 580)
			vy = -0.95 * vy;
		if (y > 580)
			y = 580;
		fillcircle(300, y, 20);
		Sleep(10);//暂停10毫秒
	}
	_getch(); // 等待按键
	closegraph(); // 关闭窗口
	return 0;
}

当按键有反弹效果时,并且进行添加和修改颜色时。


#include <graphics.h>
#include <conio.h>
#include <stdio.h>
int main()
{
    float y = 100;
    float vy = 0;
    float g = 0.5;
    initgraph(600, 600);
    setbkcolor(RGB(3, 146, 130));
    while (1)
    {
        if (_kbhit())
        {
            char input = _getch();
            if (input == ' ');
            {
                vy = -16;
            }
        }
        vy = vy + g;
        y = y + vy;
        if (y > 580)
            vy = -0.95 * vy;
        if (y > 580)
            y = 580;
        cleardevice();
        fillcircle(300, y, 20);
        setlinecolor(GREEN);
        setfillcolor(RGB(211, 23, 1));
        Sleep(10);
    }
    _getch();
    closegraph();
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值