c语言弹跳小球 c语言小游戏程序之弹跳小球的实现代码
性感博主在线瞎搞 人气:0现在说一下其中一个最简单的小程序:弹跳小球
———————————————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:如果觉得小球跳动速度太快,可以添加一些延时代码令小球速度减缓,具体可自行百度
加载全部内容