2016-03-21 19 views
0
ile yaz desenleri

bir "Steve Reich - Clapping Müzik" yapıyorum "klonlama ile x ile xoxoxoxx" ile bir şey. ama desene doğru yazarken yazı yazmasını istiyorum. böylece tür yazma bu olurdu:javascript

xoxoxoxxxoxoxoxxxoxoxoxxxoxoxoxx

xoxoxoxxoxoxoxxxoxoxxoxoxxxoxoxo yüzden X veya O yazdırır ve sonra yine sağ ve baskılar için biraz gider. Umarım bu açıktır, ingilizcem benim ilk dilim değildir, bu yüzden anlamak zorsa özür dilerim. setInterval ile

var noise, env; 
var seq = "o x o x o x o x o x o x o x x x"; 
var steps = seq.split(" "); 
var speed = 8; 
var count = 0; 
var count2 = 0; 
var count3=0; 
var shift = 0; 
var repeat = 1; 
var sf, sf2, sf3; 
var f; 


function preload() { 
    sf = loadSound("./files/clap.wav"); 
    sf2 = sf; 
    sf3 = sf; 
} 

function setup() { 
    createCanvas(400, 400); 

    env = new p5.Env(0.01, 1, 0.2, 0.1); 
    env2 = new p5.Env(0.1, 0.8, 0.01, 0.1); 
    env3 = new p5.Env(0.05, 0.9, 0.1, 0.1); 
} 

function hitMeSteve(when, env, loc) { 
    if (when == 'x' && frameCount % speed == 0) { 
    env.play(); 
    } 

} 

function draw() { 

    if (frameCount % speed == 0) { 
    count++; 

    } 
    if (frameCount % (steps.length * speed * repeat) == 0) { 
    shift++; 
    count2=count2+2; 
    count3=count3+4; 
    } 
    if(shift==4){ 
    shift=0; 
    count2=0; 
    count3=0; 
    } 
    shift = shift % steps.length; 
    shift2 = shift + 2; 
    var now = steps[count % steps.length]; 
    hitMeSteve(now, sf, 10); 
    var canon = steps[(count + shift) % steps.length]; 
    hitMeSteve(canon, sf2, width/2 + 10); 
    var canon2 = steps[(count + shift+count2) % steps.length]; 
    hitMeSteve(canon2, sf3, width/2 + 20); 

textSize(30); 
    //1 
    for (var i = 0; i < steps.length; i++) { 
    if (i == count % steps.length) { 

     fill(255, 180, 0); 
    } else { 

     fill(0); 
    } 
    text(steps[i],10+ (+ i) * 15,20); 
    //text(steps[i], 110 + (shift/2 + i) * 15, height/2); 
    } 
    //2 
    for (var i = 0; i < steps.length; i++) { 
    if (i == (count + shift) % steps.length) { 

     fill(255, 180, 0); 
    } else { 

     fill(0); 
    } 
    text(steps[i],10+(+ i)*15,40); 
    //text(steps[i], 110 + (-shift/2 + i) * 15, height/2 + 20); 
    } 

} 

cevap

1

Sadece bir öneri belki bu sana uyar: burada ben açıklayan kötüyüm çünkü 2 hatlar için tam koddur. Hız doğru

var content = "oxoxoxoxoxoxoxxx", 
 
    target = document.getElementById('ticker'), 
 
    i = 0, 
 
    timer = setInterval(addChar, 800); 
 

 
function addChar() { 
 
    if (i < content.length) { 
 
     target.innerHTML += ' ' + content[i]; 
 
     i++; 
 
    } else { 
 
     target.innerHTML = ''; 
 
     i=0; 
 
    } 
 
}
<div id="ticker"></div>

+0

mı? –

+0

Freisec –

+0

aralığını kastediyorum sadece ben orada tüm kodu koymak çünkü ben –