Вот решил заняться созданием игр на ас3, сделал парочку платформеров - все нормально вышло, решил попробовать сделать змейку. 
 Главный герой (голова змеи), еда, появляющаяся на экране и меняющая положение при поедании созданы были легко, но возник вопрос - как сделать так, чтобы удлинялся хвост змеи? 
 Я написал вот такой код : 
 Код
var i = 0; 
 var food:Array = []; 
 addEventListener(Event.ENTER_FRAME, gg33); 
 function gg33 (e:Event):void{ 
   if (geroj1.hitTestObject(eat.coll)){ 
 eat.x = (Math.floor(Math.random()*(6)))*100+(50*( Math.floor(Math.random()*(2)))); 
 eat.y = (Math.floor(Math.random()*(4)))*100+(50*( Math.floor(Math.random()*(2)))); 
 var food2 = new geroj(); 
 food2.x = g; 
 food2.y = c; 
 food.push(food2); 
 addChild(food[i]); 
 var food3 = setInterval(food4, 500); 
 function food4(){ 
 food2.x = g; 
 food2.y = c; 
 } 
 i++; 
   } 
 }
  
 Здесь g и c - раннее созданные переменные, которые каждые 500 миллисекунд считывают предыдущее положение головы змеи (geroj1) и присваивают это значение после соприкосновения с едой (также каждые 500 мс) вновь созданному объекту. По понятным причинам это работает лишь 1 раз, дальше змея не удлиняется.. подайте идею, как сделать увеличение змеи при каждом касании пищи?) 
 Добавлено (14.03.2014, 10:52) 
 --------------------------------------------- 
 Решил проблему) Вместо числовых переменных g и с сделал 2 массива, в которые записываются все координаты х и у головы, а код, срабатывающий при поедании пищи переделал следующим образом : 
 Код
var t = 1; 
 var i = 0; 
 var food:Array = []; 
 addEventListener(Event.ENTER_FRAME, gg33); 
 function gg33 (e:Event):void{ 
   if (geroj1.hitTestObject(eat.gg111)){ 
 eat.x = (Math.floor(Math.random()*(6)))*100+(50*( Math.floor(Math.random()*(2)))); 
 eat.y = (Math.floor(Math.random()*(4)))*100+(50*( Math.floor(Math.random()*(2)))); 
 var food2 = new geroj(); 
 var t1 = t; 
 food2.x = g[i1-t1]; 
 food2.y = c[i1-t1]; 
 food.push(food2); 
 addChild(food[i]); 
     
 var food3 = setInterval(food4, 500); 
 function food4(){ 
 food2.x = g[i1-t1]; 
 food2.y = c[i1-t1]; 
 } 
 t++; 
 i++; 
   } 
 }