|
[ На главную ] -- [ Список участников ] -- [ Правила форума ] -- [ Зарегистрироваться ] |
On-line: |
Game Maker Форум / Вопросы и Ответы (Для Начинающих) / Движение за мышью |
Страницы: 1 |
Автор | Сообщение | |
Szahi мастер Группа: Сообщество GM Сообщений: 79 |
Добавлено: 27-01-2007 00:31 | |
Здравствуйте! Подскажите пожалуйсто как сделать, чтобы персонаж поворачивался лицом в сторону движения, при управлении мышкой. Зарание спасибо. |
||
CH@$ER Дундук - не беспокоить! Группа: Модераторы Сообщений: 1435 |
Добавлено: 27-01-2007 09:13 | |
image_angle:= point_direction(x, y, mouse_x, mouse_y) | ||
Szahi мастер Группа: Сообщество GM Сообщений: 79 |
Добавлено: 27-01-2007 12:19 | |
Спасибо! Правда еще оин вопрос возик. Как тоже самое для изометрии сделать? Когда на восемь направлений, восемь спрайтов. Сам я думаю, что надо сделать проверку угла поворота мыши относительно персонажа... (типа 360 градусов вокруг перса на восемь зон поделить, и для каждой зоны свой спрайт.) Но как это сделать незнаю. |
||
Szahi мастер Группа: Сообщество GM Сообщений: 79 |
Добавлено: 27-01-2007 15:16 | |
Ура! Кажется сам нашел! Вот статейка про замену спрайтов (как раз на тему моих предидущих размышлений) Автор © 2002 r1ck14 Перевод и адаптация © 2002 Игорь Князев В данном уроке мы рассмотрим простой способ, замены спрайта объекта в зависимости от смены направления его движения. В событии шага (STEP) вашего объекта, поместите действие "If an expression is true" (это иконка со значком Вопроса - найти ее можно во вкладке Question) и в текстовом окне "Expression" укажите выражение: "direction>=45". За ним, поместите следующее действие "If" с инструкцией: "direction<=135". Далее, поместите действие "Change the sprite" и установите для него спрайт смотрящий "вверх". Далее, поместите действие "If" содержащее выражение: "direction>135" и другое действия "If": "direction<=225". В действии замены спрайта объекта, выберите спрайт с направлением персонажа "влево". Повторяем предыдущие телодвижения, помещаем инструкцию "If" содержащую: "direction>225" и "direction<=315" и заменяем спрайт на направленный "вниз". И наконец, последняя инструкция "If": "direction > 315 || direction <45" и меняем спрайт на смотрящий "вправо". Это означает, когда 315 < направление <= 360 или 0 <= направление < 45, появится спрайт направленный вправо. Предлагаемый вариант действий может оказаться очень полезным, например если Вы в своей игре захотите сделать так, чтобы враги следовали за главным игровым персонажем по всей комнате. Вы можете поэкспериментировать с направлениями, только помните, что выбор направления основывается на круге (360 градусов), крайняя правая точка которого тождественна 0. Вы должны все изменяющиеся направления, сохранить в памяти. Надеюсь, комуто еще этопоможет! (взято из http://gmaker.h1.ru/tutorial/s_direction.html) |
||
CH@$ER Дундук - не беспокоить! Группа: Модераторы Сообщений: 1435 |
Добавлено: 28-01-2007 08:35 | |
Это не статья, а чудовище, убить бы того, кто это придумал.
Где 8 - число возможных направлений |
||
Szahi мастер Группа: Сообщество GM Сообщений: 79 |
Добавлено: 28-01-2007 11:09 | |
Спасибо! Да, вот как раз пример когда switch гораздо опрятнее чем If. |
||
Szahi мастер Группа: Сообщество GM Сообщений: 79 |
Добавлено: 01-02-2007 20:33 | |
Да опрятный, но ругается на деление на ноль. Решил попробовать с if чтото типа "if (point_direction (x, y, mouse_x, mouse_y) >= 23) sprite_index = spr1" но вопервых здесь гдето ошибка, да еще надо совместить с проверкой "point_direction() <68" но как это сделать еще не понял... помогите пожалуйсто, кому не трудно. |
||
Nka Володька Группа: Сообщество GM Сообщений: 1648 |
Добавлено: 01-02-2007 21:57 | |
begin и end не обязательно |
||
Szahi мастер Группа: Сообщество GM Сообщений: 79 |
Добавлено: 01-02-2007 22:13 | |
Ругаерся на строку: switch (direction div (direction div 8)) а именно на (direction div 8) говорит что происходит деление на ноль. иначе-б сейчас не спрашивал. |
||
DG Soft popww Группа: Администраторы Сообщений: 736 |
Добавлено: 02-02-2007 12:13 | |
зачем писать лишнее 2Szahi попробуй так if key.._ch..(vk_up)&& key.._ch..(vk_right) { спрайт в том направлении } и так для каждого направления |
||
Szahi мастер Группа: Сообщество GM Сообщений: 79 |
Добавлено: 02-02-2007 13:33 | |
У меня МЫШКА! Стоп! Если && связывает два условия, то думяю у меня получится. Осталось только здесь ошибку найти: if (point_direction (x, y, mouse_x, mouse_y) >= 23 ГМ говорит синтаксис неверен. |
||
DG Soft popww Группа: Администраторы Сообщений: 736 |
Добавлено: 02-02-2007 14:14 | |
if (point_direction (x, y, mouse_x, mouse_y) ) >= 23 есле этот код такой какой и в игре то ты скобку забыл |
||
Szahi мастер Группа: Сообщество GM Сообщений: 79 |
Добавлено: 02-02-2007 15:58 | |
Спасибо! Да дело было в скобке, да и привычка из АСМы сработала вместо точки с запятой, двоеточие поставил. |
Страницы: 1 |
Game Maker Форум / Вопросы и Ответы (Для Начинающих) / Движение за мышью |