Не могу найти ошибку в коде JS - PullRequest
0 голосов
/ 01 июля 2011

У меня есть «генератор пузырей», который в основном работает, но не очищает пузыри должным образом, и я не могу понять, почему.Я смотрел на это некоторое время сейчас.В частности, некоторые пузырьки «очищаются», когда они всплывают, другие нет, и я не понимаю, почему.ARGH!

http://jsfiddle.net/Dud2q/7/ (замедлено, чтобы вы могли легко наблюдать за одним пузырем)

Логический поток (это просто описывает код в скрипке):

  1. Создать массив imageData (длинный список пикселей)

    imgData = ctx.getImageData(0, 0, w, h);
    
  2. выдвинуть новые случайные пузырьки в начало «массива пузырьков», который рисует дно-up:

    for(var i=0, l=generators.length; i<l; i++){
        for(var j=0, m=0|Math.random()*6; j<m; j++){
            newBubbles.push( 0|generators[i] + j );
        }
        generators[i] = Math.max(0, Math.min(w, generators[i] + Math.random()*10 - 5));
    }
    bubbles.unshift(newBubbles);
    
  3. зациклить все пузырьки, которые нужно нарисовать, и:

    1. очистить пузырьки, нарисованные в последнем цикле, установивальфа-канал до 0 (прозрачный):

      if(i<(l-1)){
          x = 0|bubbles[i+1][j];
          offset = y * w * 4 + x * 4;
          pixels[offset+3] = 0;
      }
      
    2. рисовать новые пузырьки (offset+1 = g, offset+2 = b, offset+3 = alpha):

      x = 0|(bubbles[i][j] += Math.random() * 6 - 3);
      offset = y * w * 4 + x * 4;
      pixels[offset+1] = 0x66;
      pixels[offset+2] = 0x99;
      pixels[offset+3] = 0xFF;
      

1 Ответ

0 голосов
/ 01 июля 2011

Увеличение числа генераторов до большего числа, кажется, заставляет его работать.

Например.50..times(createBubbleGenerator); почти работает.

Ура !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...