Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Несколько вопросов
Flash Zone Forum > Macromedia Flash > Начинающим
Дарлок
1. Хотца чтобы смещался не персонаж/точка/объект а экран/окружение/т.п. Таким образом чтобы "поле деятельности" условного персонажа не ограничивалась размерами экрана. Это возможно? Если да то КАК?
1.1. Если это возможно то можно ли как-то оптимизировать этот процесс. Т.е. не рисовать ВСЮ "карту" а сделать ее генерящейся. Т.е. создавались участки которые скоро будут отображены (отображаются) и ненужные удалялись, потому как меня мучают странные сомнения что если "карту" сделать размером скажем в десять раз превышающую размер экрана, то комп сдохнет ее считать (ком не супер у меня huh.gif )
1.2. Можно ли как-то сделать перемещение персонажа внутри условного "круга" достигая границ которого "карта" бы смещалась. Если да то как? Меня терзают смутные сомнения что сделать это можно через создание невидимого объекта... НО я не знаю как это сделать sad.gif
2. Можно ли как-то сделать чтобы при нажатии клавиши скажем "вправо" персонаж не только двигался вправо когда клавиша нажата, но и продолжал двигаться в этом направлении?
2.1. Можно ли как-то сделать чтобы скорость увеличивалась с каждым нажатием на определенную величину до определенного максимума? А при нажатии противоположной клавиши наоборот падала?
2.2. Можно ли сделать чтобы скажем "персонаж" при нажатии "вправо" двигался вправо, но если развернуть его в другую сторону и снова нажать "вправо"(=газ) то его скорость и направление движения было согласно законам сложения/вычитания векторов и скоростей?
3. Можно ли экспортировать/импортировать данные перменных в тхт файл, чтобы можно было динамически изменять эти данные и они автоматически сохранялись? И еще чтобы этими данными мог пользоваться другая "флешка"

P.s. ОГРОМНАЯ просьба не посылайте меня!!! (в том числе и в сторону мистических учебников, а в том что они мистические меня убедили бесплодные 5 часовые поиски во всемирной паутине). Очень буду рад ПОДРОБНЫМ ответам, ибо иногда меня повергают в шок ответы конечно же понятные людям знающим о чем говорят, но заставляющие биться головой об стену таких как я biggrin.gif И еще... если смешно, то смейтесь, но увы такие вот у меня вопросы sad.gif
tiHo
Цитата
Несколько вопросов, Несколько вопросов ответы на которые увы не нашел((

искать нужно лучше.
Цитата
1. Хотца чтобы смещался не персонаж/точка/объект а экран/окружение/т.п. Таким образом чтобы "поле деятельности" условного персонажа не ограничивалась размерами экрана. Это возможно? Если да то КАК?

смотри в теме: /forum/index.php?showtopic=661
Цитата
1.1. Если это возможно то можно ли как-то оптимизировать этот процесс. Т.е. не рисовать ВСЮ "карту" а сделать ее генерящейся. Т.е. создавались участки которые скоро будут отображены (отображаются) и ненужные удалялись, потому как меня мучают странные сомнения что если "карту" сделать размером скажем в десять раз превышающую размер экрана, то комп сдохнет ее считать (ком не супер у меня )

ето так просто не объяснить. вообщем нужно писать отдельные функции (в общем двигатель игры) которые и будут отвечать за появление и изчезание объектов с карты. ето отдельная очень большая, еще несозданная тема.(возьми и создай).
Цитата
1.2. Можно ли как-то сделать перемещение персонажа внутри условного "круга" достигая границ которого "карта" бы смещалась. Если да то как? Меня терзают смутные сомнения что сделать это можно через создание невидимого объекта... НО я не знаю как это сделать

ну необязательно, но можно. я бы делал через вычисление дистанции. ну наверно тебе всетаки будет проще сделать клип, потом сделать его слабовидимым(1% видимости), и уже проверять выходит ли персонаж за его приделы. если да то двигать карту в какую либо сторону, если нет, то на нет и суда нет.
Цитата
2. Можно ли как-то сделать чтобы при нажатии клавиши скажем "вправо" персонаж не только двигался вправо когда клавиша нажата, но и продолжал двигаться в этом направлении?

можно. тебе нужно почитать книгу "секреты разработки игр во Flash MX" которая есть у нас на форуме в разделе "Книги".
Цитата
2.2. Можно ли сделать чтобы скажем "персонаж" при нажатии "вправо" двигался вправо, но если развернуть его в другую сторону и снова нажать "вправо"(=газ) то его скорость и направление движения было согласно законам сложения/вычитания векторов и скоростей?

таже книга.
Цитата
3. Можно ли экспортировать/импортировать данные перменных в тхт файл, чтобы можно было динамически изменять эти данные и они автоматически сохранялись? И еще чтобы этими данными мог пользоваться другая "флешка"

импортировать можно. экспортировать тольеко с использованием других языков программирования(проще всего с серверными, такими как perl,php). да, данные из txt-файлов могут читать любые флешки. как вытачкивать от туда информацию можно найти у нас на форуме. тема обсуждалась 1002 раза.
посмотри в етой теме: /forum/index.php?showto...amp;hl=LoadVars , а также я тебе советую воспользоваться поиском по форуму, со словом "LoadVars". найдеш много интересных тем, в которых есть решения проблем возникших при работе с классом LoadVars.
Цитата
P.s. ОГРОМНАЯ просьба не посылайте меня!!! (в том числе и в сторону мистических учебников, а в том что они мистические меня убедили бесплодные 5 часовые поиски во всемирной паутине). Очень буду рад ПОДРОБНЫМ ответам, ибо иногда меня повергают в шок ответы конечно же понятные людям знающим о чем говорят, но заставляющие биться головой об стену таких как я И еще... если смешно, то смейтесь, но увы такие вот у меня вопросы

у нас тут не посылают.
а книжка "секреты разработки игр на Flash MX" не мистическая, т.к. на нашем форуме есть рабочая ссылка на ее скачку.
PS> если ты уже знаеш основы программирования на AScript, то тебе будет проще и игры писать. а если нет, то тебе лучше их знать, а уже потом браться за игры на подобие GTA-2.

PPS> плохо ты пользуешся поиском по форуму(если вообще пользовался). я вот все нашел почему то wink.gif
Дарлок
Может потому что поиск не отвечал на МОИ слова забитые в поиск?))) Сенк огромный)) Я и не знал что у вас есть книги)))
Дарлок
И еще, глупый вопрос... как проверить вышел ли за пределы "слабовидимого" клипа объект? Прошу простить, но очень бы не хотелось забрасывать работы с флешом, из-за собственной тупости и слабой памяти(((
tiHo
через функцию hitTest()

if(игрок.hitTest(объект))
{

// а тут действия перемещающие карту

}
Дарлок
эмн... глупый вопрос тогда, если так просто то зачем нужен хиттест через проверку координат?

И... я наверное тупой, не работает это у меня((( Может это надо куда-то вставлять? Про форму написания я даже не спрашиваю)) Вдруг не сложно примерчик привести?))
tiHo
а ну не ленись! ищи по форуму! для когото же писали! точно есть.
Дарлок
*Вытянулся по струнке и перестал ленится* Хм... а и правда есть)) Спасибо ОГРОМНОЕ. Осталось только понять что же я всетаки нашел)) biggrin.gif

Но снова вопрос. Я убедился что незнаю где искать)) В смысле в исходниках я походу не вижу какую-то часть скриптов почему-то((( хотя вроде все облазиваю. Например в твоем исходнике ГТА подобной игры, я так и не понял как работает миникарта. Если не сложно подскажи?

И... хоть где искать "как заменить курсор мыши на мувик"?
Дарлок
Еще вопрос... я не понимаю где ошибка:
Код
move_up = function () {
    this.karta._y += 1
};

function listenForKeys() {
    if (Key.isDown(Key.UP)) {
    move_up ();
    }
}
this.onEnterFrame = function() {
    listenForKeys();
};

При проверке скрипта ошибки не выдает... при попытке проиграть выдает
Цитата
**Error** Scene=Scene 1, layer=Layer 2, frame=1:Line 1: Statement must appear within on/onClipEvent handler
if (Key.isDown(Key.UP)) {

Total ActionScript Errors: 1 Reported Errors: 1
Дарлок
Ндя.. понял... понял что все дело было во втором слое. Но КАК??? это зависит? Я не понимаю(( Можете объяснить?

И еще, можно как-то создать объект не на сцене а в уже существующем мувике? Если да то как?
tiHo
Цитата
Например в твоем исходнике ГТА подобной игры, я так и не понял как работает миникарта. Если не сложно подскажи?

ха. ха. ха. думаеш я помню.. нажми на саму карту.. может там.

Цитата
И... хоть где искать "как заменить курсор мыши на мувик"?

тут же, на форуме. через поиск по всем разделам(всамом всамом вверху справа).

Код
Mouse.hide();
clip._x = _xmouse;
clip._y = _ymouse;
clip.onMouseMove = function()
{
    this._x = _xmouse;
    this._y = _ymouse;
    updateAfterEvent();
};

сначала скрываем стандартный указатель мыши. потом сразу при загрузки флешки привязываем координаты клипа к координатам курсора(который уже невидимый), а потом снова привязываем коррдинаты, только уже при каждом движении курсора мыши хотябы на 1 пиксель. а в конце принужденно обновляем екран флешки(чтобы клип плавно перемещался даже при низком fps).

Цитата
Еще вопрос... я не понимаю где ошибка:

ошибка у тебя в ДНК.

данный скрипт написан на клипе, а ошибка ругается что нужно данный код писать на кадр.
Дарлок
Только не бейте... у меня новый вопрос. Эксперементы по попытке вставить мувик в мувик... не привели ни к чему. На сцену ставится без проблем, а на например туже самую karta, чтобы мувик двигался вместе с ней, отказывается. Хотя пробовал уже как минимум два способа(((
Rohan
Цитата(Дарлок @ 29.08.2007 - 16:09) *
Только не бейте...

поздно. Администрация форума уже оплатила услуги киллера.
По сабжу:
имя_клипа.attachMovie(ссылко_в_библиотеке,имя,глубина);
Дарлок
Килер это хорошо))
Я так и делаю, но из-за того, что скорость у меня имитируется смещением мувика "карта" мне нужно именно на нем разместить объект. При одинаковом скрипте, объектры размещаются на "сцене" но не в мувике и как следствие никак не "двигаются" вместе с "картой". Как я только это не пробовал делать((( установка кода в саму "карту" ничего не дает, хотя функция запускается и код функции скопирован на 100% с основной "сцены".. воть
Lokia
Цитата
Т.е. не рисовать ВСЮ "карту" а сделать ее генерящейся. Т.е. создавались участки которые скоро будут отображены (отображаются) и ненужные удалялись

Это не к чему, конечно, если ты не используешь в карте сотни метров растра высокого разрешения.
Я, например, рисовал карту в увеличении(в векторе, конечно), делал её мувиком,подгружал на _root, задавал scale. Далее - персонаж. Чтобы он передвигался по карте, но при этом не заходил за определённые рамки экрана, совсем не обязательно создавать невидимый мувик - надо просто вставлять его не непосредственно в карту, а на основную временную линию(не забыв задать scale) и задать координаты, заходить за которые он не мог бы, но карта при этом двигалась.
Цитата
2.1. Можно ли как-то сделать чтобы скорость увеличивалась с каждым нажатием на определенную величину до определенного максимума? А при нажатии противоположной клавиши наоборот падала?

Можно создать всойство объекта или глобальную переменную отвечающие за скорость.
Например свойство: при условии, что пресонаж подгружается на _root
_root.player.S = 1
Т.о. движение созаётся(в случае с автомобилем):
_root.player._y -= _root.player.S
То же самое надо прописать в функцию, которая двигает карту, когда игрок достигает определённой координаты(только прирост у нее будет уже положительный).
Прирост скоротси:
onClipEvent(enterFrame) {
if(Key.isDown(Key.UP)) {
_root.player.S += 0.05}
Ограничитель:
if(_root.player.S >=10) {
_root.player.S -= 0.05}
Ну, по аналогии, можно написать условия и для движения назад.
tiHo
Цитата
Я, например, рисовал карту в увеличении(в векторе, конечно)

для справки: растровая графика движется быстрее векторной, поетому я бы советовал делать карту именно растровой. если конечно на карте будет минимум объектов, то флешке не нужно будет сильно напрягатся прорисовывая ее каждый раз в каждом кадре. а если карта большая с большим количеством объектов то лучше всетаки растровую делать.
Nogard
Цитата
2. Можно ли как-то сделать чтобы при нажатии клавиши скажем "вправо" персонаж не только двигался вправо когда клавиша нажата, но и продолжал двигаться в этом направлении?
Флаги. Объявляешь переменную типа Boolean, даёшь ей значение по умолчание (например false), по нажатию клавиши вправо инвертируешь переменную. А движение будет происходить в том случае, если флаг истиный.
Русская версия IP.Board © 2001-2008 IPS, Inc.