c语言小游戏程序之弹跳小球的实现代码

 更新时间:2020年12月22日 10:10:08   作者:性感博主在线瞎搞  
这篇文章主要介绍了c语言小游戏程序之弹跳小球的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

现在说一下其中一个最简单的小程序:弹跳小球

———————————————LINE————————————————

首先我们知道,在窗口的坐标系原点是在窗口左上角的,如图所示

                      

然后我们如果想在这个坐标系里面的某个点上画出一个小球,那么它的坐标系应该就是这样的

                      

转换到c语言的思维的话:X0既是打印出X0个“\n”,Y0既是打印出Y0个空格!!!!

SO

代码如下

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
 
	int i,j;
 int x = 30;
 int y = 10;
 
		system("cls");
	 
		for(j=0;j<y;j++)
		{
			printf("\n");
		}
 
		for(i=0;i<x;i++)
		{
			printf(" ");
		}
			printf("O\n");
 
	return 0;
}

↓↓↓↓编译好的效果就像这样↓↓↓↓

                        

如果想让小球往上(往下)运动要怎么办呢?

我们看前面的那个图就可以知道,只要X轴保持不变,Y轴往上做减法就可以完成,所以

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
 
	int i,j;
 int x = 30;
 int y = 10;
 
	for(int z=10;z>=y;y--)
	{
		system("cls");
	 
		for(j=0;j<y;j++)
		{
			printf("\n");
		}
 
		for(i=0;i<x;i++)
		{
			printf(" ");
		}
			printf("O\n");
	}
 
	return 0;
}

从运行效果中可以知道,小球会一直往上运动,没有停止

                  

 为什么呢?

因为我们没有设定边界,所以球碰到边缘也不会停止

所以我们在程序中加入两个变量:顶部和底部

int TOP = 1;
int Bottom = 10;

 并且规定当小球达到窗口的顶部和底部时做反方向运动

但在做反方向运动时,需要有个和正常运动相反的速度,所以加入一个变量:速度

int speed = 1;

在正常运动时,speed变量为正数,当触碰边缘时,speed变量为负数,使得小球反方向运动

int speed =1;
 
if(y > Bottom || y < TOP)
		{
			speed = -speed;
		}
 
		y = y - speed;

根据效果图可知,小球在做上下来回跳动

                    

由此可知,如果想上下左右跳动,只需在Y轴上也增加左右边界,使得触碰到左右边界的时候小球做相反方向运动,即可完成小程序的初步效果,实现出小球来回跳动的效果。

源码如下

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
 
	int i,j;
 int x = 30;
 int y = 10;
 
	int TOP = 1;
	int Bottom = 10;
 
	int Left = 0;
	int Right = 50;
 
	int speed_x = 1;
	int speed_y = 1;
 
	while(1)
	{
		
		if(y>Bottom || y<TOP)
		{
			speed_y = -speed_y;
		}
 
		if(x<Left || x>Right)
		{
			speed_x = -speed_x;
		}
 
		x = x - speed_x;
		y = y - speed_y;
 
		system("cls");
	 
		for(j=0;j<y;j++)
		{
			printf("\n");
		}
 
		for(i=0;i<x;i++)
		{
			printf(" ");
		}
			printf("O\n");
	}
 
	return 0;
}

PS:如果觉得小球跳动速度太快,可以添加一些延时代码令小球速度减缓,具体可自行百度

到此这篇关于c语言小游戏程序之弹跳小球的实现代码的文章就介绍到这了,更多相关c语言弹跳小球内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++的缺省参数你了解嘛

    C++的缺省参数你了解嘛

    这篇文章主要为大家介绍了C++缺省参数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • C++中静态成员函数访问非静态成员的实例

    C++中静态成员函数访问非静态成员的实例

    这篇文章主要介绍了C++中静态成员函数访问非静态成员的实例的相关资料,需要的朋友可以参考下
    2017-07-07
  • C++实现LeetCode(137.单独的数字之二)

    C++实现LeetCode(137.单独的数字之二)

    这篇文章主要介绍了C++实现LeetCode(137.单独的数字之二),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C语言中计算正弦的相关函数总结

    C语言中计算正弦的相关函数总结

    这篇文章主要介绍了C语言中计算正弦的相关函数总结,包括正弦和双曲线正弦以及反正弦的函数,需要的朋友可以参考下
    2015-08-08
  • Qt增加版本公司等信息两种方式

    Qt增加版本公司等信息两种方式

    在项目中生成exe或者动态库过程中可能需要加入公司信息、版本号、说明等等,下面这篇文章主要给大家介绍了关于Qt增加版本公司等信息的两种方式,需要的朋友可以参考下
    2024-01-01
  • 利用C语言实现猜数字小游戏

    利用C语言实现猜数字小游戏

    这篇文章主要为大家详细介绍了利用C语言实现猜数字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • C++实现图形界面时钟表盘代码

    C++实现图形界面时钟表盘代码

    这篇文章主要介绍了C++实现图形界面时钟表盘代码,涉及坐标函数的应用及图形界面程序设计,需要的朋友可以参考下
    2014-10-10
  • C语言实现页面置换算法(FIFO、LRU)

    C语言实现页面置换算法(FIFO、LRU)

    这篇文章主要介绍了通过C语言实现的两种页面置换算法:先进先出(FIFO)页面置换算法和最近最久未使用(LRU)页面置换算法。文中的代码具有一定的学习或工作价值,快来跟随小编学习一下吧
    2021-12-12
  • C/C++ Qt 数据库与ComBox实现多级联动示例代码

    C/C++ Qt 数据库与ComBox实现多级联动示例代码

    Qt中的SQL数据库组件可以与ComBox组件形成多级联动效果,在日常开发中多级联动效果应用非常广泛,今天给大家分享二级ComBox菜单如何与数据库形成联动,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-12-12
  • Matlab实现黑洞优化算法的示例代码

    Matlab实现黑洞优化算法的示例代码

    根据黑洞现象原理首次提出BH 算法,它在传统PSO基础上引入了新的机制,有效地提高了收敛速度并防止了陷入局部极值的情况发生.本文将用Matlab实现这一算法,需要的可以参考一下
    2022-06-06

最新评论