ДействиеСценарий / Говнокод #4856 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
public function getToBrick(brick:Point):void
{
	function f():void {
		scale_sliderbar.position = scale_sliderbar.position;
		view_wall.x = (brick.x * -300) * view_wall.scaleX + 150;
		view_wall.y = (brick.y * -178) * view_wall.scaleY + 258;
		testWallPosition();
	}
	f();
	f();
	f();
}

Бог любит троицу! =)
Самое смешное, если убрать троекратный вызов f(); - то все работает как-то коряво..
Функция testWallPosition(); проверяет min&&max координаты у стены, там также нет никаких математических просчетов.
Хоть убейте - не пойму - но аффору +100500 за потрясный кусок кода:)

Запостил: KirAmp KirAmp, (Updated )

Комментарии (9) RSS

  • Не верю. Ищи баг в другом месте. Отладчика там, что ли, нету?
    Или это типа многопоточное приложение, и говно нужно, чтобы затормозить поток, чтобы успел посчитаться другой поток? Тогда добавь sleep семафор поставь.
    Ответить
    • во флеше нет многопоточности (если не считать коллбеки от запросов на сервер).
      скорее всего там что-то не успевает прорисоваться. Там же в каждом кадре какую-то часть времени вычисляется код, а какую-то -- рендерится картинка.
      Ответить
      • Ананимус, ты был прав. Картинка не успевает прорисовываться... Нашел зачетную многотысячистрочную логику и понял что флеш не в силах это переворить
        Ответить
      • Вот так работает на ура
        public function getToBrick(brick:Point):void 
        		{
        			view_wall.x = (brick.x * -300) * view_wall.scaleX + 320 - (300 * view_wall.scaleX) / 2;
        			view_wall.y = (brick.y * -178) * view_wall.scaleY + 370 - (178 * view_wall.scaleY) / 2;
        			testWallPosition();
        			
        			dispatchEvent(new Event(MOVE_WALL));
        		}
        Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8