【问题标题】:Bouncing ball in processing加工中的弹跳球
【发布时间】:2016-11-09 15:59:02
【问题描述】:

试图在处理中制作一个简单的弹跳球程序,但无法消除球的重影。任何帮助将不胜感激,这是我的代码:

float g=-9.81;
float k=0.2;    // Spring constant
float m=0.25;   // Mass kg
float dt=0.01;  // Time step 50ms

float vy=0;     // Initial velocity
float y=0.95;   // Initial position

float t=0;      // Initial time

void setup()
{
size(500, 500);
 }

void draw()
{
 vy=vy+(g-((k/m)*vy))*dt; 
if(y<0)
{
vy=-vy;
} 

y=y+(vy*dt); 
t=t+dt;

float sx=map(0.5,0,1,0,width);
float sy=map(y,0,1,height-1,0);
fill(255,0,0);
ellipse(sx,sy,10,10);
}

【问题讨论】:

  • 注意,不需要删除整个前一个球;只是不再需要的位。否则你的图像会闪烁。作为一个 12 岁的男孩,我用机器代码在 Z80 芯片上写了类似的东西,并为此付出了代价 ;-)

标签: processing


【解决方案1】:

您永远不会清除旧框架,因此您绘制的任何内容都只是简单地绘制在您之前绘制的任何内容之上。

如果您想清除旧帧,请在draw() 函数的第一行添加对background() 函数的调用。

更多信息可以在the referencethis tutorial 中找到关于处理动画的信息(免责声明:我写了那个教程)。

【讨论】:

    猜你喜欢
    • 2013-05-23
    • 2017-01-16
    • 1970-01-01
    • 2023-03-13
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多