Просмотр полной версии : Змейка
Хочу понять как сделана эта змейка, с чего начинать? Рисовать змейку понятно как, но вот как она так возвращается, я не понимаю...
http://five3d.mathieu-badimon.com/
мне так представляется:
змейка - массив мувиков-линий
при движении мыши добавляем в конец массива, но не больше какого-то предела, лишние удаляем из начала массива
при простое мыши по таймеру удаляем опять же из начала..
у них вся эта ботва в их же 3D-пространстве реализована
ну 3D-пространство меня не интересует, просто я не понимал как он так плавно меняет размер змейки, таймер там стоит на одну секунду, после чего змейка начинает уменьшать, нужно попробовать сделать через массив...
Попробовал..:
var snake_array:Array=[]
var snakePart_mc:MovieClip
function timer(){
snakePart=_root.attachMovie("snakePartSymbol", "snakePartSymbol", _root.getNextHighestDepth())
snakePart._x=_xmouse
snakePart._y=_ymouse
snake_array.push(snakePart)
if(snake_array.length>40){
removeMovieClip(snake_array.shift(snakePart))
}
updateAfterEvent()
}
setInterval(timer, 10)
Все работает, но когда водишь мышкой быстро, то шарики не успевают аттачится друг за другом и если посмотреть http://five3d.mathieu-badimon.com/ тут, то тут все ровно с этим и линия рисуется оч ровная и "хорошая"
Вопрос, как добится такой линии
потому как их надо еще и линями соединять
я бы сделал без шариков, только с линиями
можно под них заранее мувиков наплодить, а потом только рисовать:
import flash.geom.Point;
var snake_array:Array=[];
var prevPoint:Point;
var currPoint:Point;
var counter:Number = 0;
for (var i:Number = 0; i < 40; i++)
{
snake_array.push(_root.createEmptyMovieClip("part" + i, i));
}
prevPoint = new Point(_root._xmouse, _root._ymouse);
setInterval(this,"timer", 10);
function timer()
{
counter++;
counter %= snake_array.length;
currPoint=new Point(_root._xmouse, _root._ymouse);
setLine(counter, currPoint, prevPoint);
prevPoint = currPoint;
updateAfterEvent();
}
function setLine(id:Number, p1:Point, p2:Point)
{
var mc:MovieClip = snake_array[id];
mc.clear();
mc.lineStyle(24, 0x0081A1);
mc.moveTo(p1.x, p1.y);
mc.lineTo(p2.x, p2.y);
}
Psycho Tiger
06.06.2008, 15:20
Erreur 404 : Impossible de trouver la page demandée
Есть у кого рабочая ссылка? Очень хочу посмотреть на 3д змейку :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.