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语言弹跳小球内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C语言贪吃蛇经典小游戏

    一.贪吃蛇小游戏简介: 用上下左右控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,也不能咬到自己的身体,等到了一定的分数,就能过关. 二.函数框架 三.数据结构 typedef struct Snake { size_t x; //行 size_t y; //列 struct Snake* next; }Snake, *pSnake; 定义蛇的结构体,利用单链表来表示蛇,每个结点为蛇身体的一部分. 四.代码实现(vs2010  c

  • C语言实现弹跳小球

    这是一个简单的c语言源代码,C语言实现弹跳小球,设置了小球的分数及过关的难度. #include "graphics.h" #include "math.h" #define LEFT 0x4b00 #define RIGHT 0x4d00 #define ESC 0x011b int x,y,x1,y1,key,t1,t2,keyx,keylong,keymove,over=0,i,tt=0,fast; int ballx[9]={53,103,263,120,2

  • C语言实现俄罗斯方块小游戏

    C语言实现俄罗斯方块小游戏的制作代码,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #define TTY_PATH "/dev/tty" #define STTY_ON "stty raw -echo -F" #define STTY_OFF "stty -raw echo -F" int map[21][14]; char

  • 2048小游戏C语言实现代码

    本文实例为大家分享了C语言实现2048游戏的具体代码,供大家参考,具体内容如下 大一时学c语言写的,写的不好但当时感觉还行. 环境运行 vc6.0 ,cpp文件. 基本上是c写的,但是改变字体颜色,在控制台移动光标等等好像不是c中的. 代码: #include<time.h> #include<stdlib.h> #include<conio.h> #include<stdio.h> #include<windows.h> #define x0

  • 利用C语言实现2048小游戏的方法

    准备工作 首先上一张图,因为这里只是在用C语言验证算法,所以没有对界面做很好的优化,丑是理所应当的. 了解了游戏的工作原理,实际上可以将游戏描述为四个带有方向的同一操作: 1.将所有数字向一个方向移动至中间没有空位 2.将相邻的两个相同的数字加和然后放在更靠近移动方向前部的一个位置上 另外需要判断一下玩家当前输入的内容是否可以执行,如果不可以执行等待用户下一条记录. 同时需要对游戏的进程进行控制,如果可以继续游戏,那么运行玩家继续输入下一条指令,而如果不可以进行,那么提示无法继续游戏的提示. 首

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

    现在说一下其中一个最简单的小程序:弹跳小球 ---------------LINE---------------- 首先我们知道,在窗口的坐标系原点是在窗口左上角的,如图所示 然后我们如果想在这个坐标系里面的某个点上画出一个小球,那么它的坐标系应该就是这样的 转换到c语言的思维的话:X0既是打印出X0个"\n",Y0既是打印出Y0个空格!!!! SO 代码如下 #include <stdio.h> #include <stdlib.h> int main() {

  • Android游戏开发学习①弹跳小球实现方法

    本文实例讲述了Android游戏开发学习①弹跳小球实现方法.分享给大家供大家参考.具体如下: 在学习了一点点Android之后,觉得有必要记录下来,于是就开了这个新坑,慢慢来填吧. 1.运动体Movable类 本例主要模拟了一组大小不一的球以一定的水平初速度从高处落下的运动轨迹.其中的小球为一个可移动物体Movable对象,该类中除了包含小球图片对象之外,还包括了如位置坐标.水平速度.垂直速度等一系列用于模拟小球运动的成员变量和一些方法. Movable类: package com.ball;

  • C语言小游戏之小熊跳板功能的实现

    上篇文章给大家介绍了C语言实现桌面贪吃蛇小游戏,感兴趣的朋友可以点击查看,今天给大家介绍c语言实现小熊跳板功能. C语言代码,有点简陋,还有许多可以优化的地方,注释也没写全,后期会补充,后期也可能添加更多功能,我会去尽量的完善代码. 测试工具:VS2019,语言:C语言 #include<stdio.h> #include<stdlib.h> #include<Windows.h> #include<conio.h> #include<time.h&g

  • javascript实现别踩白块儿小游戏程序

    最近有朋友找我用JS帮忙仿做一个别踩白块的小游戏程序,但他给的源代码较麻烦,而且没有注释,理解起来很无力,我就以自己的想法自己做了这个小游戏,主要是应用JS对DOM和数组的操作. 程序思路:如图:将游戏区域的CSS设置为相对定位.溢出隐藏;两块"游戏板"上分别排布着24块方格,黑色每行随机产生一个,"游戏板"向下滚动并交替显示,将每个操作板的黑块位置存入数组,每次点击时将数组pop出来进行比对(我觉得亮点在这--). 这里是游戏的GitHub地址,大家可以到里点击中

  • 使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件

    一.安装Pyinstaller 环境:python3.6.window10 注意事项: python64位版本打包的exe,只能在64位操作系统使用 打包文件夹和文件的名称不能用中文 pygame打包是里面的字体要改成"arial"格式. pygame.font.SysFont("宋体", 32) 32)  换成 pygame.font.SysFont('arial',32) 1.直接安装 pip命令安装:pip install Pyinstaller 安装成功后会

  • 使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法

    下面看下通过Pyinstaller打包Pygame库写的小游戏程序出现的问题解决方法 # -基于Python的Pygame库的GUI游戏 游戏内容是通过飞船发射子弹来射击外星人 空格键为开火,左右方向键移动,并设立了 不同关卡. 使用说明: 开发环境,游戏直接运行alien_invasion.exe即可,也可在具有Python3环境下运行alien_invasion.py 练习环境: Python:3.5.4 64位 pyinstall:3.3.1 pyinstall使用: pyinstalle

  • C语言 小游戏打砖块实现流程详解

    始祖是美国英宝格公司(en:Atari Games,ja:アタリ (ゲーム))于1976年推出的街机游戏"Breakout"(en:Breakout),由该公司在1972年发行的"PONG"(en:PONG,ja:ポン (ゲーム),世界上第一款电子游戏,类似台球)改良而来.相较于其前作,一个人就可以玩与变化丰富这两项特点让Breakout相当卖座,使各家公司竞相模仿. 因为规则简单与游戏性,现在许多移动电话都有内建打砖块游戏,也有许多因特网小游戏版本,目前在网上可以

  • C语言小游戏之简易版三子棋(棋盘可自由扩展)

    目录 前言 step1.初始化棋盘内值为空格 step2.打印棋盘 step3.玩家下棋 step4.电脑下棋  step5.判断棋盘是不是满了 step6.判断输赢 step7.最终测试三种情况 game.h game.c  test.c 前言 test.c  放游戏的测试逻辑--调用game.c game.h 游戏模块: game.c   放游戏的实现逻辑 game.h  放游戏实现函数的声明 step1.初始化棋盘内值为空格 思路 1.初始化棋盘内的值 2.棋盘中的数组内容应当全部是空格

  • C语言实现扫雷小游戏完整算法详解(附完整代码)

    目录 前言 1.算法基本思路 2.算法详解 1.初始化数组与打印数组 2.设置雷 3.排查与标记 4.CountMine函数计算周围雷的个数 5.ExpandMine函数递归展开周围所有安全区域 3.完整代码!!! 总结 前言 扫雷是一个常见小游戏,那么如何用C语言实现扫雷呢?学习了二维数组之后,我们可将扫雷的网格区域存储为二维数组,从而使用C语言实现扫雷. 1.算法基本思路 首先,用一个二维数组存储雷的分布,雷的分布在游戏期间从始至终不变,下文称为mine数组.用另一个二维数组存储排查出的雷的

  • 基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)

    随着html5的兴起,那些公司对大型游戏的开发正在慢慢疏远,一.开发周期长:二.运营花费高:他们正找一些能够克服这些缺点的替代品.正好,html5的出现可以改变这些现状,在淘宝.京东等一些大型电商网站.QQ.微信等聊天软件都出现了html5的小游戏,这说明html5越来越受到大家的青睐.接下来我用javascript实现一个小型游戏---打地鼠. 一.游戏简介 打地鼠这个游戏相信大家都不陌生,也是童年时候一款经典的游戏.本次游戏的编写是以html文件形式完成的,并且使用HBulider软件进行编

随机推荐