1. ActionScript / Говнокод #12258

    −90

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    public static function findNeighbourEmpty(cx:int, cy:int, checkDebris:Boolean = true):Cell {
        var cell:Cell = Cell.getCell(cx, cy);
        var i:int = 0;
        var distance:int = 1;
        var n:int = 8;
        while(!cell || !cell.accessible || (checkDebris && !isEmptyTile(cell))) {
            if (i < n * distance / 4) {
                cell = Cell.getCell(cx + Math.min(i, distance), cy + Math.min(distance * 2 - i, distance));
            } else if (i < n * distance / 2) {
                cell = Cell.getCell(cx + Math.min(distance * 2 - i + n * distance / 4, distance), cy + Math.max(n * distance / 4 - i, -distance));
            } else if (i < 3 * n * distance / 4) {
                cell = Cell.getCell(cx + Math.max(n * distance / 2 - i, -distance), cy + Math.max(-distance * 2 + i - n * distance / 2, -distance));
            } else if (i < n * distance) {
                cell = Cell.getCell(cx + Math.max(-distance * 2 + i - 3 * n * distance / 4, -distance), cy + Math.min(i - 3 * n * distance / 4, distance));
            } else {
                i = 0;
                distance++;
                if (distance > MAX_NEIGHBOUR_CELL_DISTANCE) {
                    return findNeighbourEmpty(cx, cy, false);
                }
                continue;
            }
            i++;
        }
        return cell;
    }

    Какой милый метод...

    kyzi007, 06 Декабря 2012

    Комментарии (14)
  2. ActionScript / Говнокод #12060

    −100

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    //.....
        public final class Random
        {
            static public function _int(min: int, max: int):int
            {
                return min + Math.round( Math.random()*(max - min));
            }
            //.....
            static public function _Bool():Boolean
            {
                return (_int(0, 1) == 1);
            }
    
            //подброс монеты: орёл
            static public function coinSideEagle(): Boolean
            {
                return _Bool();
            }
    
            //всё по-честному: решка
            static public function coinSideTail(): Boolean
            {
                return !coinSideEagle();
            }
         }

    d9k, 05 Ноября 2012

    Комментарии (22)
  3. ActionScript / Говнокод #12048

    −116

    1. 1
    ExternalInterface.call('setTimeout', exec, 60, 'reattachWeapon');

    Пришлось такую конструкцию использовать... Функция вызывает функцию, которая вызывает функцию.
    Объясню, есть библиотека для AS3 Deval, выполняющая ту же функцию, что и JS'овский eval, только в AS.
    Но в этой библиотеке есть свои минусы и из-за некоторых ограничений setTimeout там можно использовать только для заранее написанных функций.
    В общем пришлось JS'овский setTimeout использовать, который через время определенное вызовет JS функцию, а JS функция вызовет функцию из списка функций текстовых.

    swing1991, 02 Ноября 2012

    Комментарии (7)
  4. ActionScript / Говнокод #12040

    −115

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    // =================================================================================================
    //
    //	Starling Framework
    //	Copyright 2011 Gamua OG. All Rights Reserved.
    //
    //	This program is free software. You can redistribute and/or modify it
    //	in accordance with the terms of the accompanying license agreement.
    //
    // =================================================================================================
    
    package starling.utils
    {
        /** Returns the next power of two that is equal to or bigger than the specified number. */
        public function getNextPowerOfTwo(number:int):int
        {
            if (number > 0 && (number & (number - 1)) == 0) // see: http://goo.gl/D9kPj
                return number;
            else
            {
                var result:int = 1;
                while (result < number) result <<= 1;
                return result;
            }
        }
    }

    Для кого-то и логарифм - высшая математика... :(

    wvxvw, 01 Ноября 2012

    Комментарии (122)
  5. ActionScript / Говнокод #12025

    −99

    1. 1
    2. 2
    3. 3
    4. 4
    private function onClick(e:MouseEvent):void 
    {
            dispatchEvent(new MouseEvent(MouseEvent.CLICK, true, false))
    }

    Еще один кусочек очень полезного кода. (this для этого обработчика - MovieClip).

    wvxvw, 30 Октября 2012

    Комментарии (33)
  6. ActionScript / Говнокод #12020

    −122

    1. 1
    2. 2
    if (activeObject && (((activeObject is LevelObjectBirdBlack) || (activeObject is LevelObjectBirdOrange)) || (activeObject is LevelObjectBirdOrange)) && (!(activeObject as LevelObjectBird).specialPowerUsed || activeObject.getSpecialAnimationProgress() >= 0 ) )
    {...}

    primerno tak vyglyadit angry birds from inside

    iliakot, 29 Октября 2012

    Комментарии (1)
  7. ActionScript / Говнокод #11841

    −95

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    private var _disabled:int = 0;
            public function set enabled(v:Boolean):void {
                if (!v) {
                    this._disabled ++;
                } else {
                    this._disabled --;
                }
                this.run();
            }
    
            public function get enabled():Boolean {
                return !this._disabled;
            }

    Интересно что будет если _disabled внезапно примет значение -1.

    kyzi007, 27 Сентября 2012

    Комментарии (13)
  8. ActionScript / Говнокод #11771

    −86

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    switch(page) {
    		case 0:
    			showCurrentCar(page);
    			hidePreviousCar(currentModel);
    			currentModel = page;
    			break;
    		case 1:
    			showCurrentCar(page);
    			hidePreviousCar(currentModel);
    			currentModel = page;
    			break;
    		case 2:
    			showCurrentCar(page);
    			hidePreviousCar(currentModel);
    			currentModel = page;
    			break;
    		case 3:
    			showCurrentCar(page);
    			hidePreviousCar(currentModel);
    			currentModel = page;
    			break;
    	}

    Долго искал отличия кейсов, не нашол

    Edd, 14 Сентября 2012

    Комментарии (13)
  9. ActionScript / Говнокод #11722

    −86

    1. 1
    var file: * = File.userDirectory.resolvePath(CACHE_PATH + hashURL(key));

    На первый взгляд просто немного странный код, но за ним стоит интересная история.
    Человек написавший этот код после долгих расспросов и двузначных ответов таки сознался, что таким образом он надеялся избежать компиляции AIR классов в бразуерном проекте. Но интереснее еще и то, что человек продолжает в это свято верить и отстаивать свою точку зрения... а я уволился.
    Если вы не в курсе, Адоби делают несколько версий плееров, одна "ветка" предназначена для запуска с десктопа и ей можно обращаться к файловой системе, в то время как обычному плееру в браузере такое делать нельзя, ну или только после всяческих подтверждений и т.п. Человек таким образом пытлася написать кеширование загруженных картинок на диск к пользователю. Но тут судьба сыграла злую шутку, он компилировал все эти классы в библиотеку, которую забывал обновлять, и по счастливому стечению обстоятельств, библиотечный класс не содержал никаких упоминаний файловой системы - и все работало замечательно.

    Прогрнозируемый разрыв шаблона произойдет примерно недели через две-три, когда нужно будет обновлять версию. Ну, это конечно при условии, что кеширование каким-то образом будут тестировать, но, скорее всего не будут, и шутка может затянуться.

    wvxvw, 07 Сентября 2012

    Комментарии (24)
  10. ActionScript / Говнокод #11653

    −87

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    парсерНЛО.parse(new XML (new ufo1())); //разбираем модель
    			for each (объект3Д in парсерНЛО.objects) {				
    				мешПерсонажа_ = объект3Д as Mesh;
    			}			
    			клипПерсонажа_ = парсерНЛО.animations[0] as AnimationClip;
    			
    			for (i = 0; i < 10; i += 1) {
    				парсерНЛО.parse(new XML (new ufo1())); //разбираем модель
    				for each (объект3Д in парсерНЛО.objects) {				
    					мешПерсонажа[i] = мешПерсонажа_.clone() as Mesh;
    				}
    				мешПерсонажа[i].setMaterialToAllSurfaces(new TextureMaterial (new BitmapTextureResource((new ufo1_text()).bitmapData)));
    				rootContainer.addChild(мешПерсонажа[i]);
    
    							
    				клипПерсонажа[i] = клипПерсонажа_.clone() as AnimationClip;
    				клипПерсонажа[i].attach(мешПерсонажа[i], true);
    				
    				анимПерсонажа[i] = new AnimationClipController;	
    				анимПерсонажа[i].root = клипПерсонажа[i] as AnimationClip;
    				
    
    			}

    А вот как пишут настоящие русские программисты )

    makc3d, 27 Августа 2012

    Комментарии (15)