Форум » Вопрос-Ответ » Вопросы по Game Maker 7.0 Lite » Ответить

Вопросы по Game Maker 7.0 Lite

eXeMple08: Несмотря на то, что редактор давольно простой, возьникли такие нупских вопросы: 1.Игра такая:управление персонажем на WASD, стрелять на левую кнопку мыши, вместо курсора прицел, целишся им, нажимаеш на кнопку огня и персонаж стреляет туда где был прицел - насколько я знаю это top-dawn шутер...Мне собственно нужно прикрепить курсор к прицелу и сделать чтобы персонаж "стрелял в курсор". 2.Нужно создать отображение жизней и патронов... Пока что все Надеюсь на вашу помощь...Если такие темы уже были сильно не пинайте...Я новичек в этом деле и не понимаю даже наверное элементарных вещей

Ответов - 86, стр: 1 2 3 All

zuko: -прицел- скрыть курсор обьект прицела позиция х обьекта = позиция х мыши позиция y обьекта = позиция y мыши -хад- прорисовать кол-во жизней в позициях view_xview[0..7] view_yview[0..7] если подробно нужно позже напишу

eXeMple08: Нужно по подробнее...

Кто-то: eXeMple08 ВНИМАНИЕ! СЛЕДУЮЩАЯ ФРАЗА НЕ ПРОПАГАНДИРУЕТ ВАРЕЗ! ты бы это... как все цивилизованнык люди... кр*кнул бы, с полным функционалом легче намного. А примерчиков топ-даун шутеров дофига в сети. Посмотри на сайтиках по гм, на пример game-maker.ru или mizzystic.ru


zuko: Курсор мыши жмем ctrl+alt+G вкладка Графика убераем галочку "Показывать курсор мыши" создаем спрайт прицела ставим оригинал по центру создаем обьект в поле спрайт выбираем созданный ставим глубину -1 размещаем обьект в комнате заходим в его свойства создаем событие шаг перемешаем значок Execute code из вкладки control там пишем фрагмент кода x=mouse_x y=mouse_y запускаем смотрим

Кто-то: Угу, а потом по этому объекту можно ориентироваться, куда пулю направлять. не знаю как это будет в виде значков, в коде это будет выглядеть как: i=instance_create(x,y,pula) i.direction=point_direction(x,y,kursor.x,kursor.y) i.speed=10 Ставить в событие мыши Global Left Clicked. Где pula - название объекта пули, соответственно где kursor - название объекта курсора. Удачи!

zuko: в виде значков там просто значок создать движущийся обьект и вписываешь позиции куда стрелять kursor.x kursor.y и скорость

eXeMple08: Спасибо Все получилось.Еще вопрос:Можно ли сделать так, чтобы герой все время смотрел на прицел и если прицел повернуть налево то он так же поварачивался туда(игра с видом сверху)?Ходиш на W а поворачивать можно было бы мышкой...удобней было бы...

zuko: direction=point_direction(x,y,kursor.x,kursor.y) image_angle=direction или просто image_angle=point_direction(x,y,kursor.x,kursor.y)

Flooty: тебе нужна про версия

zuko: Да к сожилению придется прислушаться к Кто-то

Flooty: или закажи на йойо, я вот тоже щас заказывать собрался =)

eXeMple08: Все, сделал.Еще, как отнимать у обьекта жизни?А то всех с одного выстрела убивать не интересно...

Likantrop: Ну, это делай так: в create объекта: hp=10; в событии столкновения с пулей: hp-=1; if hp<1 {instance_destroy()} with other {instance_destroy()}

eXeMple08: Решил в этом примере фонарика http://game-maker.ru/infusions/pro_download_panel/download.php?did=112 сделать стрельбу.Стрельбу сделал, все норм, а вот когда делае чтобы жизни тратились после столкновения с зомби вылетает ошибка...Для игрухи оч нужен фонарик, а все перенести в пример не удается

Likantrop: ща поглядим

Likantrop: вот - http://slil.ru/26486443 сделал так называемые "быстрые пули", если не в курсе, что это такое, почитай в нете... перезарядку оружия и прочая сам сделаешь...

eXeMple08: Со стрельбой то все понятно...А вот когда делаешь, чтобы при столкновение с зомби у персонажа тратились жизни не получается - ошибка...Да и не только в примере с фонариком, и без фонарика ошибка вылетает...На много что жалуется, общего в них только что то типа связанного с "x", "y" и именем глав.персонажа.//

Likantrop: Поэтому надо не использовать чужие примеры, а делать самому...у тя там такая шняга: у тебя во многих действиях задействуется переменные x и y персонажа...Когда он уничтожается, переменные тоже уничтожаются, и игра не знает что делать... Возможные решения проблемы: а) Идеш в глобал_гейм_сеттингс, там в разделе "ошибки" включаешь "обращаться с неиниациализированными переменными как с 0" б) делаешь так: вводишь у перса переменную death=0. То есть, жив он или мертв. И везде ставишь: если клавиши нажата, проверяем жив ли перс, если нет, тогда не двигаемся...с зомби таж фигня, тип если мертв, зомби уходит по своим делам... Когда перс дохнет ставишь переменную=1...И спрайт ему меняешь...а объект не уничтожаешь... в) Везде ставишь проверки if instance_exists(o_hero){}

eXeMple08: Спасибо, помогло

Lagevae: Кто-то пишет: ты бы это... как все цивилизованнык люди... кр*кнул бы, с полным функционалом легче намного. Не развращать новичков! Нет крякам!

Flooty: Lagevae пишет: Нет крякам! верно! =) я сам пойду щас и куплю лицензию =)

eXeMple08: Я вернулся! А можно ли сделать так как в игре Alien Shooter?Жанр TDS, а камера немного смещена, а не над головой у героя.При этом при движение мыши (герой "смотрит" на прицел), его туловище поворачивается за мышью-прицелом (ноги на месте), а если туловище повернуть уже некуда (не будет же герой повернут назад), то поворачиваются ноги...Если плохо обьяснил, могу уточнить... Скрины: 1. http://s44.radikal.ru/i106/0901/65/f99be987ef86.jpg 2. http://s58.radikal.ru/i162/0901/7a/f19fd5ff7c2a.jpg Туловище боком, если двигать мышь дальше в туже сторону, то ноги повернуться за телом и получится скрин 1, только в другую сторону... Возможно ли сделать такое?Или хотябы что-нибудь похожее...

zuko: можно! позитию камеры прировнять к среднему значению позиций мыши и героя а на счет ног париться не стоит ведь когда бежиш и смотришь назад а ноги вперед бегут)

Ev-genius: тему новую создавать лень.. вопрос: гденить есть функция, либа или дллка для ГМ, которая работает со спрайтами? а именно нужно деформировать спрайт. скажем есть спрайт квадратик |__| например, стянули верхнюю грань (2 верхних угла квадратика) в центр и получили треугольник /\ или есть тотже нарисованый квадратик |__| не сильно стянули его вверху и получили трапецию /__\ ну или наклонили верхнюю часть рисованного Спрайта |__| -> /__/ стандартных функций искривления спрайтов ненашел, и перед тем как писать самому хочу узнать может уже есть готовое? =)

zuko: меня тоже вот такое интересовало для создания 3д без использывания функций драв 3д

Mikozoid: Cами спрайты деформировать не выйдет, но можно рисовать примитивы с натянутыми текстурками. Там все, что нужно указывается.

Ev-genius: вооооо... я над этим тоже размышлял, вчера в 2 ночи осенило, но уставший и несоображавший не сумел запустить примитив с текстурой и забил на это дело так, если я рисую примитив 4 точки и тяну текстуру спрайт (без повторений), то при изменении точек примитива текстура тянется тоже? а то примеров не видел, а сам ещё не запускал. чуть позже только буду пробовать /////////// Запустил, работает =) спрайт деформируется)

Jin KaZaMa: Ev-genius пишет: Запустил, работает =) спрайт деформируется) "...пример!"(с)

Ev-genius: всё будет, напрягает эта особенность с полигончиками (треугольнички) но это уже косметические вещи, решу покажу =)

Кто-то: Блин, вот жалко что подтармаживает в гамаке всё это... Кстати микоз по такому принципу делал каплю)))

Mikozoid: http://dump.ru/file/1398001 Вот примерчик)

Ev-genius: про пример, в коментах написано про порядок текстуры, на самом деле порядок определяешь сам какой тебе хочется, а вот то что рисовать приходися треугольники это напрягает (особенно когда нужно деформировать весь примитив)

Mikozoid: Ну я это и имел в виду. Вершины рисовать надо буквой N, чтобы получалось 2 треугольничка. Если рисовать, например, по часовой стрелке просто по порядку вершины, то ничего не выйдет.

Ev-genius: поигрался малек получилось чтото похожее что задумывал, далеко от идеала много ещё продумать и придумать но чтото интересное получилось, можно посмотреть примерчик за шарики можно тянуть Клик

Jin KaZaMa: Ev-genius примерчег в гмк... эх, придется лезть за архивом... А вообще в старых играх был такой эффект п*здатый - когда спрайт эдак деформировался и плющился по-всякому, такое на Сеге и Супер Несе было... вообще кульно выглядело и юзалось во многих хитовых играх (Контра, Кастельвания, Alien Soldier и др.)... Надо бы этому в Гм научится...

Витёк: Четкий пример, до этого на гамаке такого не встречал

Ev-genius: мне деформация для пары мелочей нужна была, как разобрался прошу поглядеть для чего её можно придумать на сколько я знаю 3д в гамаке не дружит с сурфейсами, поэтому деформируя спрайт можно добиться некоторых эфектов. тоже псевдо 3д, мягкость, ну и ещё несколько интересных вещей, думаю пригодиться)

eXeMple08: Скажу просто и коротко: Как сделать задержку между выстрелами?Ну чтобы сделать допустим пистолет...Смотрел пример, везде по разному и не понятно

eXeMple08: Как сделать чтобы при попадание патроном в железныю стену то мнгновенно вылетала искра?Или допустим если в каменную то пыль...Пробовал, не получилось...

Кто-то: eXeMple08 пишет: Как сделать чтобы при попадание патроном в железныю стену то мнгновенно вылетала искра?Или допустим если в каменную то пыль...Пробовал, не получилось... Извечный вопрос... У всех пуля не долетает))) Сейчас попробую помочь, помню сам придумывал такой скриптик... 5 мин

Кто-то: http://narod.ru/disk/4994050000/pul.gmk.html Пробуем. Специально для Lite версии пытался делать всё примитивами, но не обещаю что всё заработает...

zuko: ниче так примерчик партиклы понравились самодельные)

eXeMple08: А как кодом записать смену спрайта?Ну как Change Sprite...

Lagevae: eXeMple08 есть два способа. Функция и присваивание. Функцию не помню, а вот присваивание - sprite_index=спрайт, им я чаще пользуюсь, и по-моему оно удобнее.

eXeMple08: Спросите забыл, а можно ли как нибудь использовать в game maker русский текс?Ну например в диалогах...

sanchez: Да, просто в шрифтах надо указать All

eXeMple08: Как сделать, чтобы допустим панелька с жизнями не лежала на уровне, а всегда отображалась в игре?Мне нужно сделать интерфейс, а вот как сделать, чтобы он всегда в углах окна допустим был не знаю...Проще говоря мне нужен интерфейс, не чтобы цифры обозначались (это и сам смогу сделать), а чтобы этот интерфейс был интерфейсом, а не лежачими обьектами где то на первом уровне...Надеюсь нормально обьяснил...Если что могу по другому обьяснить....

FatPir: ну не совсем понятно=) http://dump.ru/file/2207591 вроде так

eXeMple08: Конечно спасибо, но не совсем так...Ну представьте себе любой TDS...В правом нижнем углу панелька с патронами, в левом с жизнями...Когда ты ходиш они не идут за тобой, не выходят за пределы экрана...Они все время находятся в одном и том же месте, при этом до них нельзя дойти...Нельзя сделать так, чтобы твой герой находился под этой панелькой или над, без разницы...Интерфейс он и есть интерфейс...Надеюсь так понятней будет...

Витёк: Просто выстави положение этих панелек относительно перса, ну х_hero+n и y_hero+n

ALIEN XIII: Витёк пишет: Просто выстави положение этих панелек относительно перса, ну х_hero+n и y_hero+n Не получится, на границах комнаты всё равно собьётся. Привязку надо к виду делать.

FatPir: ALIEN XIII я делал когда-то без привязки к видам(не люблю сними работать. Прсото создал объект Draw в степе у нег х=херо.х у=херо.у и рисовать GUI относительно него, так, на объект маску по размерам интерфейса и в событии при столкновение со стенками делаешь так чтобы он не уходил за пределфы комнаты.

ALIEN XIII: FatPir пишет: Прсото создал объект Draw в степе у нег х=херо.х у=херо.у и рисовать GUI относительно него, так, на объект маску по размерам интерфейса и в событии при столкновение со стенками делаешь так чтобы он не уходил за пределфы комнаты. Просто первый опыт легче запоминается, для меня виды)

D(e)N: Может подскажет кто, можно ли изменить вид панели "display message". То есть вместо стандартного серого поставить, допустим, синий цвет? =)

Lagevae: D(e)N пишет: Может подскажет кто, можно ли изменить вид панели "display message". То есть вместо стандартного серого поставить, допустим, синий цвет? =)Есть множество скриптовых функций для изменения стиля сообщения.

D(e)N: Lagevae пишет: Есть множество скриптовых функций для изменения стиля сообщения. Можешь хоть одну привести в пример?

FatPir: message_background скачай спрайт

Lagevae: D(e)N пишет: Можешь хоть одну привести в пример?Есть такая замечательная кнопка... "F1". Нажимай прямо в Game Maker'е.

Kitsune: Как сделать, чтобы после нажатия определенной клавиши на клавиатуре эта клавиша блокировалась до тех пор, пока не кончится действие, за которое отвечает нажатие данной клавиши?

Likantrop: ну...поставь на переменные проверку в событии нажатия: if do=0 {твое действие; do=1;} ну еще надо сделать, чтобы по завершении твоего действия переменная do стала равна снова 0.

Kitsune: твое действие Я так написал: if do=0 {instance_destroy(объект); do=1;} Но при запуске игры он мне выдал ошибку: if (do=0) at position 6: Unexpected symbol in expression Прнцип я понял, надо просто переменную менять, но в коде по моему неправильно что то. ну еще надо сделать, чтобы по завершении твоего действия переменная do стала равна снова 0 А как это лучше написать?

D(e)N: Kitsune пишет: Но при запуске игры он мне выдал ошибку: if (do=0) Попробуй в событии создания объекта установить do=0 или do=1.

Likantrop: Kitsune пишет: instance_destroy(объект) так писать нельзя надо так: with (объект) {instance_destroy()}

D(e)N: Возник вопрос: Как сделать проверку, что если я в функции get_string(str,def) пишу "Пока" игра заканчивается?

Lagevae: if(get_string('','')='Пока'){game_end()}

D(e)N: Lagevae спасибо! Оказывается я был близок к истине: if get_dtring('Пока') {game_end()}

D(e)N: Возникла проблема: Когда я что-нибудь отвечаю и это слово написано в скрипте проверки, появляется окно с одной только строкой для ввода слова, и только когда я второй раз его там введу выполняется действие. З.Ы. А еще был случай когда слово приходилось вписывать больше 2-х раз....

Lagevae: D(e)N я знаю почему) Ты тогда с get_string'а заводи в переменную перед условиями, а в условия вводи не его, а переменную. Он у тебя для каждого сравнения новый get_string выполняет)

D(e)N: Точно! Вот теперь все нормально работает... +1 за помощь.

D(e)N: ALIEN XIII пишет: Привязку надо к виду делать. Не смог в помощи найти... Как ею пользоваться?

Lagevae: D(e)N пишет: Не смог в помощи найти... Как ею пользоваться? Ну, когда вид двигается, у него меняются координаты - view_xview[x] и view_yview[x], то есть чтобы привязать к ним что-то, надо делать нечто такое - x=view_xview[x].

zuko: [pre] x=view_xview[0]+10 y=view_yview[0]+10 //а вообще нужно в драве это делать draw_sprite(sprite_index,image_index,view_xview[0]+10,view_yview[0]+10) [/pre]

Likantrop: zuko пишет: x=view_xview[0]+10 y=view_yview[0]+10 вроде номер вида можно не указывать, тогда будет работать для любого вида

ккким: я когда ей пользовался ей след за видом панелька "не успевала"

Lagevae: ккким пишет: я когда ей пользовался ей след за видом панелька "не успевала"Или в End Step, или рисовать в Draw такими координатами.

zuko: Я обычно делаю драв спрайт с координатами view_xview[0]+10,view_yview[0]+10

AleX: седьмой гамак может работать под Линукс? и, если может, то как?

Lagevae: AleX пишет: седьмой гамак может работать под Линукс? и, если может, то как?Через Wine, наверное, только.

Zohan: Как сделать, чтобы руки с оружием смотрели в сторону прицела? А то нужно сделать, чтобы направление ходьбы и стрельбы не зависели друг от друга.

Lagevae: Ну рисуешь руки отдельно, примерно так: image_angle=point_direction(x,y,mouse_x,mouse_y) Хотя, какая у тебя конкретно сложность я не особо понял.

Zohan: Выглядит это, мягко говоря, коряво. Других способов нет?

Likantrop: Всегда есть другой способ. А что корявого?

Zohan: Руки иногда от тела отрываются. Но вроде есть идея... Пещерная, конечно...

Lagevae: Zohan побалуйся с origin у спрайта.

Qbert: Lagevae пишет: у рисуешь руки отдельно, примерно так: цитата: image_angle=point_direction(x,y,mouse_x,mouse_y) Хотя, какая у тебя конкретно сложность я не особо понял. А как ограничить ход рук?

Lagevae: Ну надо проверять, если, допустим, image_angle получается больше, например, 50, то прировнять к 50: if(image_angle>50){image_angle=50} Ну и ещё одно условие для ограничения с другой стороны. Поэкспериментируй со значениями.



полная версия страницы