![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2013
Сообщений: 82
|
Добрый вечер! Месяц назад увлёкся флэшем и созданием флэш-игр. Сейчас делаю свою первую крупную игру, и столкнулся вот с такой проблемой: как заставить один мувиклип постоянно двигаться к другому мувиклипу, которым руководит пользователь? Я написал вот такой код:
function newBalloon() { if (nextBalloon < numBalloons) { if (getTimer() > nextBalloonTime) { if (Math.Random() < .3) { attachMovie("balloon", "balloon"+nextBalloon, nextBalloon); if (Math.Random() < .3) { _root["balloon"+nextBalloon]._x = -30; dx = int(Math.Random()*1)+1; } else { _root["balloon"+nextBalloon]._x = 700; dx = -int(Math.Random()*1)-1; } _root["balloon"+nextBalloon]._y = int(Math.Random()*600)+20; balloons.push({clip: "balloon"+nextBalloon, d: dx}); nextBalloon++; nextBalloonTime = getTimer() + 2000; } } } } function moveBalloons() { for(i=balloons.length-1;i>=0;i--) { dx = balloons[i].d; balloon = _root[balloons[i].clip]; balloon._x += dx; if ((dx < 0) and (balloon._x < -20)) { balloon.removeMovieClip(); balloons.splice(i,1); } else if ((dx > 0) and (balloon._x > 570)) { balloon.removeMovieClip(); balloons.splice(i,1); } } if ((nextBalloon >= numBalloons) and (balloons.length < 1)) { gotoAndStop("game over"); } } Но потом решил сделать, что бы эти клипы двигались к другому клипу. Но в итоге я смог достичь только то, что клипы которые создаються справа движутся налево и наоборот. Но как сделать, что бы они двигались к другому клипу? Я пробовал решить проблемку с помощью такого кода: if (strawPos.x < balloon[i].x) { var dx = -balloonSpeed; } else if (strawPos.x > balloon[i].x) { var dx = balloonSpeed; } Но клипы тогда вообще не двигаются. Последний раз редактировалось mooncar; 24.04.2013 в 22:25. |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Цитата:
По задаче: код-то есть, да понять ничего нельзя. Опишите задачу по-человечески. Может там просто твинером можно обойтись.
__________________
hauts.ru |
|
|||||
|
Регистрация: Apr 2013
Сообщений: 82
|
function newBalloon() { // Можно ли создать новый балон (запрос к переменным, которые здесь не указаны) if (nextBalloon < numBalloons) { // Прошло ли достаточно времени, что бы создать новый балон? if (getTimer() > nextBalloonTime) { // Шанс создать балон (10% или 20%) if (Math.Random() < .3) { // Новый балон attachMovie("balloon", "balloon"+nextBalloon, nextBalloon); // С какой стороны и с какой скоростью будет двигаться балон if (Math.Random() < .3) { _root["balloon"+nextBalloon]._x = -30; dx = int(Math.Random()*1)+1; } else { _root["balloon"+nextBalloon]._x = 700; dx = -int(Math.Random()*1)-1; } // Высота, на которой возможно движение _root["balloon"+nextBalloon]._y = int(Math.Random()*600)+20; // Добавка нового балона balloons.push({clip: "balloon"+nextBalloon, d: dx}); // Смена значения переменных nextBalloon++; nextBalloonTime = getTimer() + 2000; } } } } function moveBalloons() { // Перемещаем все балоны for(i=balloons.length-1;i>=0;i--) { // Определяем скорость шара и получаем ссылку на клип, dx = balloons[i].d; balloon = _root[balloons[i].clip]; // Движение балона balloon._x += dx; // При вылете за экран балон удаляется (левая сторона) if ((dx < 0) and (balloon._x < -20)) { balloon.removeMovieClip(); balloons.splice(i,1); // При вылете за экран балон удаляется (правая сторона) } else if ((dx > 0) and (balloon._x > 570)) { balloon.removeMovieClip(); balloons.splice(i,1); } } // Если шары закончились, игра завершается if ((nextBalloon >= numBalloons) and (balloons.length < 1)) { gotoAndStop("game over"); } } Вот это if (strawPos.x < balloon[i].x) { var dx = -balloonSpeed; } else if (strawPos.x > balloon[i].x) { var dx = balloonSpeed; } P.S. Крупная игра, это сильно сказано, она крупная по моим меркам, меркам человека, который впервые делает, а так в ней чуть больше чем 100 строчек кода. После того, как её сделаю, хочу переходить на третий и учить класы. |
|
|||||
|
Модрон-ветеринар
|
Anabel, для оформления кода в сообщении нужно использовать соответствующие теги.
__________________
Идите первым! |
|
|||||
|
Регистрация: Apr 2013
Сообщений: 82
|
Исправлюсь
|
![]() |
![]() |
Часовой пояс GMT +4, время: 02:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|