弹球游戏设计

此博客链接:https://www.cnblogs.com/ping2yingshi/p/11991423.html

一、问题描述
用c语言实现一个弹球游戏,可以让小球在一定范围内做抛物线运动。

二、解决问题的物理模型步骤

1.在一个固定点画一个小球(以o代表小球)

2.让小球沿着 y=0.1*(x-20)*x+10这条抛物线移动

3.给小球规定一个范围运动,横坐标达到40,纵坐标最多达到20

备注:为什么我们看到的小球是移动的。

这里要提到视觉暂留:人眼在观察景物时,光信号传人大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”,视觉的这一现象则被称为“视觉暂留”。

因为视觉暂留原理,在我们看到第一个小球消失后,虽然小球消失了,但是小球还存在于我们大脑中,等下一个小球在次出现时,我们脑中的小球会和看到的小球有一个连接,这让我们感觉小球像是在移动一样。

4.小球每次运动只显示当前的小球,不显示以前的小球。

5.调整小球速度。

6.给小球规定一个范围运动。

三、物理模型对应的技术原型

1.使用双重for循环,以换行为x轴,空格为y轴,输出一个小球o。

  for(i=0;i<x;i++)
        printf("\n");
  for(j=0;j<y;j++)
        printf(" ");
  printf("o\n");

2.加一个while() 循环,并赋值为1,可以让小球持续运动。

3.根据二次函数,初始限定x=9,y=1;当小球运动到最高点时,x=1,y=10;当小球过越过最高点,到达x=10时,限定y=0,velocity_y=1;使小球从初始位置重新开始运动。

4.添加x,y轴速度变量,命名并为其赋值   int velocity_x=1; int velocity_y=1;通过小球初始位置加上定义的速度和时间的乘积来改变x,y方向的位移,从而使小球可以上下移动。

5.让小球在y轴方向每次增加一,y=y+ velocity_y;在x轴方向按照x=1*0.1*(y-20)*y+10函数运动,小球和运动是一条抛物线。

6.使用清屏函数,system("cls") ;把小球上一次的运动轨迹清除掉。在使用这个清屏函数时,需要在main函数前加#include <stdlib.h>这个头文件。

7.为了使小球运动看起来清晰,增加一个Sleep()函数,使每次输出小球时,产生时间差,我们视觉会感觉小球运动变慢。

 

四、运行结果

1.小球运行截图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.小球运行动图

 

 

 

 

posted @ 2019-12-05 19:44  萍2樱释  阅读(547)  评论(0编辑  收藏  举报