Processing I';m使用处理2.2.1。我需要加快移动矩形的速度,但不要使其过快”;“波涛汹涌”;

Processing I';m使用处理2.2.1。我需要加快移动矩形的速度,但不要使其过快”;“波涛汹涌”;,processing,Processing,我正在使用processing 2.2.1。我有rw=rw-2;和rect(x,y,rw,ry);无效提款;所以矩形平均地变小了。如何在不将其更改为4的情况下加速(rw-2)。当我增加数字时,它会加快速度,但会变得更加斩波。如何在使数字更小、更平滑的同时加快速度?首先:请将您的实际(示例)代码添加到您的帖子中。这样我们可以看到你在做什么。另外,使用代码格式,使代码在文本的其余部分中脱颖而出。有关更多信息,请参阅 要加快动画速度,可以: 增加步长,以便在帧之间进行更大的更改(您说您不想要) 增加

我正在使用processing 2.2.1。我有rw=rw-2;和rect(x,y,rw,ry);无效提款;所以矩形平均地变小了。如何在不将其更改为4的情况下加速(rw-2)。当我增加数字时,它会加快速度,但会变得更加斩波。如何在使数字更小、更平滑的同时加快速度?首先:请将您的实际(示例)代码添加到您的帖子中。这样我们可以看到你在做什么。另外,使用代码格式,使代码在文本的其余部分中脱颖而出。有关更多信息,请参阅


要加快动画速度,可以:

  • 增加步长,以便在帧之间进行更大的更改(您说您不想要)
  • 增加帧率。如果在相同的时间内渲染更多的帧,动画将更快,但由于帧之间的变化较小,动画仍然是流动的
  • 默认情况下,处理尝试以60fps的速度运行,您可以使用更改速度。请记住,并非所有计算机的功能都足以以更高的帧速率渲染。您可以使用该变量跟踪当前帧速率,以查看您的计算机是否能够跟上

    例如:

    void setup(){
    帧速率(100);//将帧速率设置为100fps
    }
    作废提款(){
    println(帧率);//打印实际帧率
    }
    
    有几种方法可以用来实现这一点,但一般来说,这种“起伏”感觉可能是因为您根据大量的帧而不是物理世界(物理!)进行缩放

    作为一个简单的示例,请尝试使用更高的帧速率根据所经过的时间进行缩放,而不是依赖标量的帧速率:

       int start;
        void setup(){
          size(400, 400, P3D);
          start = millis();
          frameRate(12);
          smooth();
        }
        int rW = 200;
        int rH = 200;
    
        void draw(){
          background(0);
          stroke(255, 0, 0);
          fill(255);
          rect(50, 50, rW, rH);
          int current = millis();
          float scalar = (current - start) * 0.1f;//arbitrary scalar
          rW -= scalar;
          rH -= scalar;
          start = current;
          println(scalar);
        }
    
    您可能需要研究Verlet集成和一些物理模型。Toxiclibs是一个不错的API,它可能会给你一些你想要的东西。这里的关键点是,您可以调整帧速率,时间过后,您的模型将处于大致相同的位置。这提供了一个更可信的缩放,而不是依赖于帧速率


    但是,如果帧速率是一致的(并不总是一致的),则可以简单地按循环缩放。根据我的经验,每分钟60帧的速度非常平稳。请记住,胶片是每秒24帧的,最近有一些明显的例外情况改用48帧。

    欢迎使用stackoverflow。对于这样的问题,通常会发布有效的代码,而不是在没有程序的情况下给出您认为相关的行(尽管,请确保不要粘贴代码页和代码页:仅显示a),作为旁注:是的,请发布您的代码,这样做会更快。