![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2015
Адрес: СПБ
Сообщений: 14
|
Здравствуйте, Flasher'ы! Недавно узнал о проекте под названием Agar.io (http://agar.io/) и решил слепить что-то подобное...Но очень скоро по своей неопытности натолкнулся на интересную проблему - следование ГГ за мышкой. В AS 2.0 это вылядело примерно так: speed = 5; this.onEnterFrame = function() { dx = this._xmouse-pl._x; dy = this._ymouse-pl._y; Q = Math.atan2(dy, dx); pl._rotation = Q*180/Math.PI; dist = Math.sqrt(dx*dx+dy+dy); if (dist>speed) { valx = Math.cos(Q)*speed; // постоянная скорость valy = Math.sin(Q)*speed; pl._x += valx; pl._y += valy; } }; И ещё - незнаю как сделать спавн еды для ГГ по всему полю Всё чего я добился: Прошу не ругаться сильно - я начинающий и на форуме это мой первый вопрос |
|
|||||
|
Цитата:
Цитата:
|
|
|||||
|
Регистрация: Jul 2015
Адрес: СПБ
Сообщений: 14
|
Вот, как и просили - и AS 2, и в AS 3...
Жду ответов)) |
|
|||||
|
В agar.io не везде генерится еда, а кусками. Поэтому выбираем случайную точку на карте, и генерим относительно неё раз 100 в пределах 500-700 пикселей от точки во все стороны. И так несколько итераций.
__________________
There is no thing in this world that is not simple. |
|
|||||
|
Исходники открыть не удалось, видимо ваша версия Flash выше моей. Но совсем не обязательно выкладывать исходники, ведь можно просто показать код, который нуждается в помощи.
|
|
|||||
|
Регистрация: Jul 2015
Адрес: СПБ
Сообщений: 14
|
Т.е. мы берём, допустим 4 точки на карте и относительно них прибаляем координаты и там спавним еду?
А, и ещё вопросик - как мне сделать подсчёт очков при съедании? Самая очевидная мысль, наверное - это создать переменную и с помощью if'а прибавлять по одному очку... Но вот как вывести это на экран? Заранее спасибо за ответы. Добавлено через 10 минут Ок, выкладываю весь код: Версия AS3: stop(); import flash.display.MovieClip; //▼ Это неудачная попытка реализовать тот самый спавн еды... ▼ //stage.addEventListener(Event.ENTER_FRAME, apelsin); //function apelsin (e:Event) { // var myPl2: MovieClip = new pl2 (); // addChild(myPl2); // myPl2.x = Math.random(); // myPl2.y = Math.random(); //} // ▼ Единственное, что я придумал для следования ГГ за курсором ▼ stage.addEventListener(Event.ENTER_FRAME, apelsin); function apelsin (e:Event) { Mouse.hide(); pl.x = mouseX; pl.y = mouseY; } //P.S //Да, код ужасен, но я новичёк в этом деле, и да - мне 14 лет)) //Так что я себя частично оправдываю... speed = 5; Mouse.hide();//Прячем мышь this.onEnterFrame = function() { dx = this._xmouse-pl._x; dy = this._ymouse-pl._y; Q = Math.atan2(dy, dx); pl._rotation = Q*180/Math.PI; dist = Math.sqrt(dx*dx+dy+dy); if (dist>speed) { valx = Math.cos(Q)*speed; // постоянная скорость valy = Math.sin(Q)*speed; pl._x += valx; pl._y += valy; } }; // ▼ А это две глупых попытки спрятать "еду" ▼ /*if (pl._x = eda._x) { eda.visible = false; } if (pl._y = eda._y) { eda.visible = false; }*/ if (pl.hitTestPoint(eda._x, eda._y)) { eda.visible = false; } |
|
|||||
Mouse.hide(); var speed:float = 0.5; //скорость 0 - не двигается, 1-мгновенно перемещается addEventListener(Event.ENTER_FRAME, apelsin); function apelsin(e:Event) { //Mouse.hide(); нет смысла каждый кадр скрывать мышь //pl.x = mouseX; //pl.y = mouseY; //можно и так, для плавного результата pl.x += (mouseX - pl.x) * speed; pl.y += (mouseY - pl.y) * speed; } |
|
|||||
|
Регистрация: Jul 2015
Адрес: СПБ
Сообщений: 14
|
Спасибо большое, пойду пробовать, только вот не понял, что делает
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 02:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|