• 弹球游戏设计


    此博客链接: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(" ");
      for(j=0;j<y;j++)
            printf(" ");
      printf("o ");

    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.小球运行动图

     

  • 相关阅读:
    【BZOJ4514】【SDOI2016】数字配对 [费用流]
    【BZOJ4517】【SDOI2016】排列计数 [数论]
    【BZOJ4516】【SDOI2016】生成魔咒 [SAM]
    【BZOJ1560】【JSOI2009】火星藏宝图 [DP]
    【BZOJ4903】【CTSC2017】吉夫特 [DP]
    【BZOJ3884】上帝与集合的正确用法 [欧拉定理]
    【BZOJ4869】相逢是问候 [线段树][欧拉定理]
    树和二叉树知识点总结
    Socket详解
    Host文件简介
  • 原文地址:https://www.cnblogs.com/ping2yingshi/p/11991423.html
Copyright © 2020-2023  润新知