使用c语言与EASYX实现弹球小游戏

这篇具有很好参考价值的文章主要介绍了使用c语言与EASYX实现弹球小游戏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

eg1:小球碰到窗体的四个墙实现反弹效果

#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#include <conio.h>
#define PI 3.14


int main()
{
	initgraph(800, 600);
	setorigin(400, 300);
	setaspectratio(1, -1);
	setbkcolor(RGB(164, 225, 202));
	cleardevice();
	// 让小球初始位置出现在圆心的位置
	int x = 0;
	int y = 0;
	int vx = 5;
	int vy = 5;
	int r = 40;
	while (1) {
		cleardevice();
		solidcircle(x, y, r);
		Sleep(40);
		//判断小球是否撞击到顶边
		if (y >= 300 || y <= -300) {
			vy = -vy;

		}
		// 在坐标轴中取反
		if (x >= 400 || x <= -400) {
			vx = -vx;
		}
		x += vx;
		y += vy;
	}



	getchar();
	closegraph();
	return 0;

}

实现弹球小游戏的具体代码

  • 使用c语言的库函数和控制台函数指针与结构体
#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#define PI 3.14


// 函数的封装---》 结构体
typedef struct {
	int x ,y;
	int vx, vy;
	int r;
	int barLeft, barTop, barRight, barBottom;

}GameData;

void reset(GameData *gdata) {
	// 指针调用数值的方式是->
	gdata->x = rand() % (400 + 1) - 200;
	gdata->y = rand() % (300 + 1) - 150;
	gdata->vx = 5;
	gdata->vy = 5;
	if (rand() % 2 == 0) {
		gdata->vy = -gdata->vy;

	}if (rand() % 2 == 0) {
		gdata->vx = -gdata->vx;
	}
	gdata->r = 40;
	gdata->barLeft = -150;
	gdata->barRight = 150;
	gdata->barTop = -280;
	gdata->barBottom = -300;

}

int main()
{
	initgraph(800, 600);
	setorigin(400, 300);
	setaspectratio(1, -1);
	setbkcolor(RGB(164, 225, 202));
	cleardevice();
	// 将当前的时间作为随机种子
	srand((unsigned int)time(NULL));
	//声明GameData变量将其传入reset函数中用于初始化游戏数据
	GameData gdata;
	// 函数的调用将地址传递过去通过指针获取地址
	reset(&gdata);


	while (1) {
		cleardevice();
		solidcircle(gdata.x, gdata.y, gdata.r);
		solidrectangle(gdata.barLeft, gdata.barTop, gdata.barRight, gdata.barBottom);
		Sleep(40);
		
		//判断小球是否撞击到顶边,当小球的边缘撞击到窗体的顶部时历史反弹
		if (gdata.y >= 300- gdata.r) {
			gdata.vy = -gdata.vy;
		}
		// 在坐标轴中取反
		if (gdata.x >= 400- gdata.r || gdata.x <= -400+ gdata.r) {
			gdata.vx = -gdata.vx;
		}
		// 撞击或越过挡板的代码
		if (gdata.barLeft <= gdata.x && gdata.x <= gdata.barRight && gdata.y <= gdata.barTop + gdata.r) {
			gdata.vy = -gdata.vy;// vy 取反
		}


​		

		gdata.x += gdata.vx;
		gdata.y += gdata.vy;
	
		// 获取用户键盘输入,判断键盘的按钮是否被按下,控制挡板的移动
		if (_kbhit() != 0) {
			char c = _getch();
			if (c == 'a') {
				// 控制挡板的移动范围
				if (gdata.barLeft > -400) {
					gdata.barLeft -= 20;
					gdata.barRight -= 20;
				}
	
			}
			else if (c == 'd') {
				if (gdata.barRight < 400) {
					gdata.barLeft += 20;
					gdata.barRight += 20;
				}
			}
		}
		if (gdata.y <= -300) {
			reset(&gdata);
		}
	}
	
	getchar();
	closegraph();
	return 0;

}

使用c语言与EASYX实现弹球小游戏,c语言,开发语言,EASYX,visual studio文章来源地址https://www.toymoban.com/news/detail-714709.html

到了这里,关于使用c语言与EASYX实现弹球小游戏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言-------实现贪吃蛇小游戏

    Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外, 它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程序达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序

    2024年04月29日
    浏览(33)
  • C语言:轻松实现扫雷小游戏

    目录 一、前言 二、扫雷步骤 1.创建项目 2.设计整体框架 1.定义数组长度和雷的个数 2.game函数功能 三、头文件game.h代码实现  四、测试文件test.c代码实现 五、game函数功能实现 1.初始化棋盘 2.打印棋盘  3.布置雷 4. 获得雷的个数  5.排查雷 6.game函数实现代码 六、总结 大家好

    2024年02月03日
    浏览(31)
  • 【C】C语言实现扫雷小游戏

    相信大家一定都玩过扫雷小游戏,今天我就带大家来用C语言实现一个简易版的扫雷小游戏。 这里我们还是需要三个文件来封装我们的写的代码: test.c ----- 用于我们代码的测试,以及游戏整体框架的实现。 game .c ------ 用来封装实现我们游戏的相关函数。 game.h ------ 主要用来

    2024年02月11日
    浏览(29)
  • 【C】C语言实现三子棋小游戏

    今天带大家用C语言来实现我们的一个小游戏—— 三子棋 也是用我们之前所学的知识学实现一些有价值的东西。 在开始之前要跟大家声明一下我们这个项目需要三个文件: game.h —— 主要来声明和游戏相关的函数 game.c —— 主要来实现和游戏相关的函数 test.c —— 主函数所在

    2024年02月11日
    浏览(36)
  • C语言从零实现贪吃蛇小游戏

    制作不易,点赞关注一下呗!!! 文章目录 前言 一.  技术要点 二、 WIN32API介绍 三、 贪吃蛇游戏设计与分析         1.游戏开始前的初始化         2.游戏运行的逻辑  总结 当我们掌握链表这样的数据结构之后,我们就可以用它来做一些小项目,比如童年小游戏贪吃蛇

    2024年02月20日
    浏览(32)
  • C语言之实现贪吃蛇小游戏篇(2)

    目录 🎇测试游戏test.c 🎇游戏头文件包含函数声明snake.h 🎇游戏实现snake.c 屏幕录制 2023-12-02 204515   ✔✔✔✔✔最后感谢大家的阅读,若有错误和不足,欢迎指正!乖乖敲代码哦!  代码---------→【唐棣棣 (TSQXG) - Gitee.com】 联系---------→【邮箱:2784139418@qq.com】

    2024年02月05日
    浏览(47)
  • 【C语言实现扫雷小游戏——可展开一片】

    学习完了函数和数组,让我们做个扫雷小游戏巩固一下所学的知识把! 使用控制台操作 通过菜单实现选择 棋盘为9×9 默认随机布置10个雷 排查雷 如果排查的位置不是雷,就显示周围有几个雷 排查位置是雷,游戏结束,玩家失败 把10个雷全部排除,游戏结束,玩家成功 扫雷

    2024年02月08日
    浏览(36)
  • C语言之扫雷小游戏的实现【含递归展开】

    扫雷游戏是1992年发行的一款大众类益智游戏,对于许多80后、90后来说都是童年的回忆。如今三十年过去了,这款游戏依旧受到很多网友的喜爱,今天我们一起来模拟实现一下扫雷游戏。 本文所用的编译器是VS2022 这里我们使用模块化设计,模块化设计就是把各个模块的代码分

    2024年02月02日
    浏览(33)
  • 小游戏贪吃蛇的实现之C语言版

    找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:C语言 目录 游戏前期准备: 设置控制台相关的信息  GetStdHandle GetConsoleCursorInfo  SetConsoleCursorInfo SetConsoleCursorPosition GetAsyncKeyState 贪吃蛇游戏设计与分析  本地化 地图,食物

    2024年04月23日
    浏览(31)
  • C语言实现五子棋小游戏(内附源码)

    游戏中有人机,双人两种模式。五子棋作为一个平面游戏,很明显用二维数组来写最合适不过。为了让代码看起来更有条理,我们用三个.c文件,分别是:text.c 用来测试我们的游戏;game.c 游戏功能的实现;is_win.c 判断输赢的版块。另外,还有一个game.h 文件来放我们的函数声

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包