2014-04-28 41 views
1

我试图在开始时有两个不同的延迟,并且在重复某个项目时每个声音之间有相同的延迟,因此在此没有停止时间。我尝试使用延迟,但它似乎只是添加两个延迟,而不是将它们分开,我被告知使用millis();函数,但不知道如何实现这一点?任何帮助将是惊人的!使用millis();而不是延迟();正在处理不同的延迟

import ddf.minim.*; 
import ddf.minim.signals.*; 
import ddf.minim.analysis.*; 
import ddf.minim.effects.*; 



import ddf.minim.*; 

Minim minim; 
AudioPlayer player; 
AudioPlayer player2; 

void setup() 
{ 
    size(512, 200, P3D); 

    minim = new Minim(this); 

    player = minim.loadFile("clapping.mp3"); 
    player2 = minim.loadFile("bell.mp3"); 

} 

void draw() 
{ 
    background(0); 
    stroke(255); 

player1delay(); 
player2delay(); 

} 

void delayatstart(){ 
    millis(4000); 
} 

void player1delay(){ 

    delayatstart(); 
    player.play(); 
    player.rewind(); 

} 

void delayatstart2(){ 
millis(10000); 
} 

void player2delay(){ 

    delayatstart2(); 
    player2.play(); 
    player2.rewind(); 

} 

以上是我想要使用的代码,我代替我与米利斯延误和有没有抬头论坛,但不能找到一个匹配的内容我在寻找!

+0

您应该使用所用编程语言的名称来标记您的问题。 –

+0

交叉点:http://forum.processing.org/two/discussion/4752/using-millis-instead-of-delay –

回答

2

首先,您正在错误地使用millis()方法。 millis()方法没有任何争论,所以我不知道你认为millis(10000)会做什么。看看参考文献:http://www.processing.org/reference/millis_.html

millis()函数只是返回自程序启动以来的毫秒数。您可以通过将其与某个阈值进行比较来使用它来创建延迟。此示例程序仅在5秒钟后绘制一圈:

void draw(){ 

    background(0); 

    if(millis() > 5000){ 
     ellipse(10, 10, 50, 50); 
    } 
}