Понедельник, 07 Октября 2024, 18:24

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос - Ответ (Game Maker)
LunarPixelДата: Вторник, 20 Сентября 2011, 15:28 | Сообщение # 2221
старожил
Сейчас нет на сайте
FallieN97, нужно знать скриптовый язык GML (Game Maker Language) smile

FadeBakerДата: Вторник, 20 Сентября 2011, 15:37 | Сообщение # 2222
JavaSE Game Developer
Сейчас нет на сайте
Quote (Els)
Простое передвижение персонажа

Code
y -= (place_free(x, y-5)*keyboard_check(ord('W')))*5;
y += (place_free(x, y+5)*keyboard_check(ord('S')))*5;
x -= (place_free(x-5, y)*keyboard_check(ord('A')))*5;
x += (place_free(x+5, y)*keyboard_check(ord('D')))*5;


Поясняю. Функции place_free и keyboard_check возвращают 2 значения, это true и false. Мы знаем, что при умножении на ноль всегда получаем ноль. Булевы значения эквивалентны нулю и единице (false - 0, true - 1). Так вот, place_free принимает true, если место свободно в заданных координатах, и false, если занято. Также и с keyboard_check, если клавиша нажата - возвращает true, иначе - false. Например если первые две функции приняли true, т.е. место свободно и нажата клавиша, то в произведении мы получим 1, и умножаем на скорость передвижения персонажа, в данном случае это 5. Таким образом мы получаем движение. smile

Понимаю, что не самый лучший вариант, но можно и так. smile


Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
ElsДата: Вторник, 20 Сентября 2011, 16:11 | Сообщение # 2223
почетный гость
Сейчас нет на сайте
Тоже спс)) учту

Добавлено (20.09.2011, 16:11)
---------------------------------------------
И ище один очень тупой вопрос но ответьте плз на него . Вот есть рисонок тут и с него нужно выделить спрайты передвижение , атака и т.д и т.п , и не знаю как))


Сообщение отредактировал Els - Вторник, 20 Сентября 2011, 16:15
tracer07Дата: Вторник, 20 Сентября 2011, 16:28 | Сообщение # 2224
постоянный участник
Сейчас нет на сайте
В game maker есть такая возможность как загрузка рисунков из стрипов, у тебя как раз изображение является стрипом. Чтобы вытащить из стрипа какую то одну часть нужно:

1. Создать спрайт
2. Открыть его для редактирования
3. Нажать File->Add from strip (Файл->Добавить из стрипа)
4. Выбрать твой стрип
5. Выбрать нужную часть изображения и нажать галочку в верхнем левом углу
ElsДата: Вторник, 20 Сентября 2011, 22:58 | Сообщение # 2225
почетный гость
Сейчас нет на сайте
получяеться асиметрия вот это плохо

Добавлено (20.09.2011, 22:58)
---------------------------------------------
Разобрался но появился новый вопрос : как сделать спрайт без фоным

LunarPixelДата: Вторник, 20 Сентября 2011, 23:02 | Сообщение # 2226
старожил
Сейчас нет на сайте
Els, в окне редактирования спрайта (Sprite Editor) выбери в меню Images -> Erase a Color smile

ElsДата: Вторник, 20 Сентября 2011, 23:21 | Сообщение # 2227
почетный гость
Сейчас нет на сайте
Ище раз извеняюсь за некоректные вопросы но я полный новичек в гамаке)) спс что помогли
GAZ777Дата: Понедельник, 26 Сентября 2011, 15:37 | Сообщение # 2228
участник
Сейчас нет на сайте
как сделать в событии Draw при столкновении hero c ammo, oboim+=20?

help


<-- КЛИКНИ! Ты поможешь ему вырасти.



Invincible Tanks


Сообщение отредактировал GAZ777 - Понедельник, 26 Сентября 2011, 15:38
Лер_да_РимДата: Понедельник, 26 Сентября 2011, 15:44 | Сообщение # 2229
заслуженный участник
Сейчас нет на сайте
а зачем это делать в событии Draw?

Добавлено (26.09.2011, 15:44)
---------------------------------------------
Обычно подобные действия осуществляются через событие столкновения (наиболее оптимальный вариант) или через Step: if place_meeting(x,y,ammo) {oboim += 20}


Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

GAZ777Дата: Понедельник, 26 Сентября 2011, 15:47 | Сообщение # 2230
участник
Сейчас нет на сайте
Лер_да_Рим, у меня инфо патронов в отдельном объекте, и мне нужно чтобы когда у ГГ становилось больше патронов, то и на картинке тоже становилось больше. Андестенд? smile

<-- КЛИКНИ! Ты поможешь ему вырасти.



Invincible Tanks


Сообщение отредактировал GAZ777 - Понедельник, 26 Сентября 2011, 15:48
Лер_да_РимДата: Понедельник, 26 Сентября 2011, 15:50 | Сообщение # 2231
заслуженный участник
Сейчас нет на сайте
I didn't understand. Сталкивайся в объекте игрока, передавая информацию объекту, отвечающему за патроны. Промолчу о том, что легче всё это держать в одном объекте игрока.

Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

GAZ777Дата: Понедельник, 26 Сентября 2011, 15:53 | Сообщение # 2232
участник
Сейчас нет на сайте
Лер_да_Рим, помоги мне! Просто когда я Draw ставлю в объект героя, вместо героя по полю бегает цифра! cry

<-- КЛИКНИ! Ты поможешь ему вырасти.



Invincible Tanks
Лер_да_РимДата: Понедельник, 26 Сентября 2011, 15:55 | Сообщение # 2233
заслуженный участник
Сейчас нет на сайте
Если используется событие Draw, то спрайт объекта отрисовываться не будет. Это исправляется стандартной функцией draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,c_white,image_alpha);

Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

GAZ777Дата: Понедельник, 26 Сентября 2011, 16:14 | Сообщение # 2234
участник
Сейчас нет на сайте
Лер_да_Рим, это получилось, только вот теперь ГГ невидимый. wacko

<-- КЛИКНИ! Ты поможешь ему вырасти.



Invincible Tanks
LunarPixelДата: Понедельник, 26 Сентября 2011, 16:26 | Сообщение # 2235
старожил
Сейчас нет на сайте
GAZ777, не парься, сделай отдельный объект, в нем событие draw и там пропиши вывод текста draw_text(x,y,hero.oboim)

GAZ777Дата: Понедельник, 26 Сентября 2011, 16:35 | Сообщение # 2236
участник
Сейчас нет на сайте
LunarPixel, КУЛ! cool спасибо огромное!!!

Добавлено (26.09.2011, 16:35)
---------------------------------------------
LunarPixel, по возможности 20 плюсов поставил-бы. smile


<-- КЛИКНИ! Ты поможешь ему вырасти.



Invincible Tanks
Лер_да_РимДата: Понедельник, 26 Сентября 2011, 20:06 | Сообщение # 2237
заслуженный участник
Сейчас нет на сайте
LunarPixel, это что, отдельно объекты для рисования делать? Иногда я так поступал, но, ИМХО, намного лучше всё делать в объекте игрока. Ну, контроллеры всегда необходимы, но не тратить же объекты на мелочи...

Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

LunarPixelДата: Понедельник, 26 Сентября 2011, 20:14 | Сообщение # 2238
старожил
Сейчас нет на сайте
Лер_да_Рим, я говорю лишь про один объект, который буде служить для вывода параметров/интерфейса.
Это избавит от необходимости рисовать через объект героя все его спрайты, при этом в том же герои ещё и выводить параметры на экран. Лучше даже сами параметры поместить в этот самый отдельный объект, а не хранить их в герои. smile


Лер_да_РимДата: Понедельник, 26 Сентября 2011, 21:46 | Сообщение # 2239
заслуженный участник
Сейчас нет на сайте
LunarPixel, ну, я так и поступаю (выношу параметры в контроллер), чем и оправдываю себя. А иначе мне, честно говоря, удобней, как я сказал.

Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

LunarPixelДата: Понедельник, 26 Сентября 2011, 21:57 | Сообщение # 2240
старожил
Сейчас нет на сайте
Лер_да_Рим, ну ты же не знаешь, как у него в игре всё устроено/будет устроено. Я лишь предложил вариант, который для него будет удобнее/понятнее, ибо во многих случаях доп. объект использовать лучше. smile

Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг