Четверг, 05 Декабря 2024, 05:44

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
ReanДата: Вторник, 13 Декабря 2016, 14:47 | Сообщение # 101 | Тема: ПОЛЕЗНЫЕ СКРИПТЫ ДЛЯ ВАШЕЙ ИГРЫ
участник
Сейчас нет на сайте
KostayFire, думаю, необходимо сперва подучиться, разобраться, посмотреть как всё работает, познакомиться поближе с конструктором и официальной документацией. В конце концов, заиметь привычку проверять свой код, который публикуешь. Чтобы не получалось, как во втором примере, "Управление на командах".

P.S. ВКонтакте по умолчанию не даёт прямые ссылки на изображения.
ReanДата: Вторник, 13 Декабря 2016, 14:31 | Сообщение # 102 | Тема: Вопрос-[ответ] по Unity
участник
Сейчас нет на сайте
EchoIT,
Цитата EchoIT ()
какой-то Community Edition

Цитата EchoIT ()
самая обычная VS 2015

:D На сплэш-скрине при старте VS 2015, что написано? Ну или в окне "About..." в верхней строчке ниже логотипа :)
Вот сравнение версий: тыц
А вот здесь можно почитать, чем Community лучше Express версии.
ReanДата: Вторник, 13 Декабря 2016, 14:20 | Сообщение # 103 | Тема: Вопрос - Ответ (Game Maker)
участник
Сейчас нет на сайте
dildo_bomber, повторю то, что говорил где-то выше: не лучшая затея обращаться в момент запуска комнаты, в событиях Create одних объектов к другим объектам. Но если уж по какой-то причине это жизненно необходимо, то можно настроить порядок создания экземпляров: во вкладке Settings нужной комнаты, кнопка Instance Order.

Сообщение отредактировал Rean - Вторник, 13 Декабря 2016, 14:33
ReanДата: Вторник, 13 Декабря 2016, 00:07 | Сообщение # 104 | Тема: Вопрос-[ответ] по Unity
участник
Сейчас нет на сайте
triptix,
Цитата triptix ()
VS 2015 на месяц только вроде.

Community Edition, поставляемая вместе с Unity, на данный момент бесплатна. Необходим лишь аккаунт Microsoft.
ReanДата: Пятница, 09 Декабря 2016, 19:26 | Сообщение # 105 | Тема: Вопрос - Ответ (Game Maker)
участник
Сейчас нет на сайте
KostayFire, в чём проблема адаптировать? Крути весь танк по принципу башни. Движение танка можно оставить как у объекта tank_base, только поворот на кнопках убрать.
ReanДата: Четверг, 08 Декабря 2016, 21:30 | Сообщение # 106 | Тема: Вопрос - Ответ (Game Maker)
участник
Сейчас нет на сайте
olololoscin, какой GameMaker? Какая версия? Все нужные библиотеки стоят?
ReanДата: Четверг, 08 Декабря 2016, 17:20 | Сообщение # 107 | Тема: Война слов.
участник
Сейчас нет на сайте
Опухоль мозга
ReanДата: Четверг, 08 Декабря 2016, 04:12 | Сообщение # 108 | Тема: Вопрос - Ответ (Game Maker)
участник
Сейчас нет на сайте
KostayFire, а в чём, собственно, проблема? Что не получается?

Добавлено (08 декабря 2016, 04:12)
---------------------------------------------
KostayFire, набросал пример: TankSimulator.gmz
Ничего сложного, но всё равно код на всякий случай прокомментировал. В основном, всё тебя интересующее должно находится в объекте tank_turret. Разбирайся.

Кто не любит скачивать неизвестное - ниже gif-ка.
Внимание! GIF-ка весит около 2.5 МБ
Ссылка на imgur


Сообщение отредактировал Rean - Четверг, 08 Декабря 2016, 12:26
ReanДата: Понедельник, 05 Декабря 2016, 23:19 | Сообщение # 109 | Тема: Вопрос - Ответ (Game Maker)
участник
Сейчас нет на сайте
ProsstoBRO, как вариант, можно создать объект, например, с названием obj_ui. И все элементы управления (кнопки, лэйблы и т.д.) наследовал бы от этого объекта. В степе родительского объекта написал бы примерно следующий алгоритм:
Код

// Двигаем вид каким нам необходимо образом
...
// Далее, для простоты использования объявлю две временны переменные
var camX = view_xview[0]; // Допустим у нас 0-вой вид отвечает за камеру
var camY = view_yview[0];

with (obj_ui)
{
    x = offsetX + camX;
    y = offsetY + camY;
}

Что такое оффсет и где его взять. Ответ простой - генерируем их при создании объекта (если объекты расположены у нас в комнате), либо можно задать необходимое нам значение (если хотим генерировать элементы интерфейса динамически).
Событие Create объекта ui_button, к примеру:
Код

offsetX = x - view_xview[0];
offsetY = y - view_yview[0];

Есть один нюанс. Если, например, объект ui_button наследуется от obj_ui, и у него не переопределено событие Step, то код выше (где мы двигаем камеру и все объекты ui) может выполнятся несколько раз (соответственно, для самого obj_ui и у всех его потомков). Этого можно избежать переопределив у каждого потомка событие Step (скорее всего, оно и так будет переопределено, хотя не факт), либо введя проверку в Step у объекта obj_ui (тот код, который выше) является ли текущий объект потомком или нет, либо (наиболее простой вариант) - все действия по перемещению (весь код из Step объект obj_ui) убрать в отдельный объект, например, Manager, который будет отвечать за состояние игры (пауза/игра/меню), обработка input-ов (клавиатура, мышь, геймпад и т.д.), перемещение камеры, отрисовка UI и т.д.

Я понимаю, что "слёту" может быть сложно вникнуть во всю эту ООП-ную парадигму, но в данном случае это даёт нам некоторую степень удобства, как то, например, что нам не придётся передвигать отдельно каждый элементы интерфейса (в менеджере мы просто будем перемещать все объекты, которые наследуются от UI вместе с камерой), а также нам не составит труда добавить новые элементы или удалить/изменить старые.


Сообщение отредактировал Rean - Понедельник, 05 Декабря 2016, 23:21
ReanДата: Понедельник, 05 Декабря 2016, 22:35 | Сообщение # 110 | Тема: Вопрос - Ответ (Game Maker)
участник
Сейчас нет на сайте
ProsstoBRO,
ЦитатаProsstoBRO ()
как бы плавать отделять от view когда я его двигаю

Было бы неплохо это увидеть, чтобы понять что не так.
По-хорошему, стоит передвигать вид и кнопку в одном событии, тогда не должно быть каких-то заминок.
ReanДата: Понедельник, 05 Декабря 2016, 21:43 | Сообщение # 111 | Тема: Вопрос - Ответ (Game Maker)
участник
Сейчас нет на сайте
arthur33, ну так вряд ли кто-то сможет помочь - нужна информация: что не так, что не работает и т.д.
Начнём с начала. В каком событии какого объекта происходит проверка на коллизию?
ReanДата: Понедельник, 05 Декабря 2016, 21:23 | Сообщение # 112 | Тема: Diforb - бесплатный конструктор для создания звуков
участник
Сейчас нет на сайте
Интересный проект - добавил в закладки!
ReanДата: Понедельник, 05 Декабря 2016, 20:28 | Сообщение # 113 | Тема: Вопрос - Ответ (Game Maker)
участник
Сейчас нет на сайте
dildo_bomber, задача сводится к написанию парсера.
Цитатаdildo_bomber ()
а как можно при открытии самого файла сразу весь файл получить как строку?

Вспоминая старые лабораторные работы по C, где всё сводилось к "ПОКА (Не конец файла) {строка += строка_из_файла}" :) Тоже самое легко реализуется и в условиях GameMaker.
Цитатаdildo_bomber ()
возможно ли раскодировать/закодировать сам файл при открытии/закрытии?

А зачем? Если хочешь сделать своим методом, то просто прочитай весь файл и загони строку в функцию-парсер, которая на выходе даст результат. Вариантов масса.

Но если не хочется себя мучить, то попробуй функции base64_encode и bas64_decode. Для удобства - храни каждое значение в новой строке.
Суть такова:
Открываем файл для записи, берём значение, перегоняем его в string, запуливаем его в base64_encode - полученный результат записываем в отдельную строку в файле. Повторяем до тех пор, пока не запишем все необходимые данные.
Считывание происходит с точностью до наоборот: считываем строку (file_text_readln), обрабатываем её функцией base64_decode, результат кастуем в нужный тип данных и, вуаля, данные восстановлены. Повторяем до конца файла.

Всё, конечно, зависит от необходимости: если алгоритм кодирования - самоцель, то выбираем первый вариант (с самописным парсером). Если же главное это игра - то удобней будет использовать второй.

Добавлено (05 декабря 2016, 20:28)
---------------------------------------------
arthur33, необходимо добавить "флаг" (переменную, описывающую состояния).
Например, добавим кругу флаг "wasCollision = false" при создании экземпляра (событие Create). И далее, твой код будет таким:
Код

with (obj_square)
{
    if distance_to_object(o_circle) == 0
    {    
        if (wasCollision == false) // Если коллизии до этого не было, то...
        {
            c4et++;                    // то выполняем инкрементацию и
            wasCollision = true;    // запоминаем, что коллизия была
         }
     }
     else
        wasCollision = false;      // Если столкновения нет, то устанавливаем флаг "не_было_коллизии"
}


Добавлено: кстати, почему для проверки коллизии используешь distance_to_object? У такого способа проверки коллизии есть один существенный недостаток - если проверять коллизию двух объектов неправильной формы (с впадинами и выпуклостями), то несмотря на то, что спрайты не пересекаются, коллизия всё равно будет обрабатываться (потому как просчёт идёт по грубому bounding box'у). Если мы используем спрайты с точной маской, то лучше использовать функцию place_meeting.


Сообщение отредактировал Rean - Понедельник, 05 Декабря 2016, 20:42
ReanДата: Понедельник, 05 Декабря 2016, 14:18 | Сообщение # 114 | Тема: Вопрос - Ответ (Game Maker)
участник
Сейчас нет на сайте
dildo_bomber, как-то читал подобную темку на reddit'. Там была интересная мысль о том, что если это синглплеер, то не стоит замарачиваться - если игрок захочет, он так или иначе изменит данные. В этом есть зерно правды. Для онлайн игры же, данный метод практически непригоден.
Но если всё же хочется каким-то образом усложнить себе жизнь, то можно использовать самый простой алгоритм шифрования с использованием кодового слова, шифровальных таблиц и т.д. Посмотри: шифр Цезаря, шифр Атбаш и т.д. Если кратко: замена символов исходного алфавита на символы алфавита шифрования (составленный заранее, либо работающий по определённому алгоритму - шифр Цезаря, например). Но это едва ли убережёт данные от более-менее пытливого ума.

P.S. Иногда помогает отделять скобки пробелами, чтобы избавиться от смайликов.


Сообщение отредактировал Rean - Понедельник, 05 Декабря 2016, 14:19
ReanДата: Понедельник, 05 Декабря 2016, 00:59 | Сообщение # 115 | Тема: Вопрос - Ответ (Game Maker)
участник
Сейчас нет на сайте
ProsstoBRO, здесь не всё так однозначно. Наиболее очевидны два варианта: написать свою UI-систему, которая будет обрабатывать нажатия, выводить в DrawGUI все необходимые элементы, в общем, полностью функционирующий интерфейс.
Плюсы: Удобная, гибкая, понятная (разработчику) система UI
Минусы: Сам процесс написания такой системы

Менее грандиозный вариант: использовать для реализации простой объект (например, "кнопка"). Чтобы кнопка реагировала на мышь и отображалась в том же месте - необходимо её перемещать вместе с активным View. Ну и конечно, не забывать засовывать в Depth пониже, чтобы отрисовывалась поверх других объектов, потому как рисоваться она будет в простом Draw.
Плюсы: Удобно при нечастом использовании, при относительной простоте организации интерфейса, лёгкость реализации
Минусы: Некоторые сложности при большом количестве кнопок, возможны проблемы масштабирования под разные размеры окна/экрана

Добавлено (05 декабря 2016, 00:59)
---------------------------------------------
И забыл третий вариант: воспользоваться бесплатным ассетом из Marketplace. Например, ZUI Engine. Плюсов и минусов не знаю - не пользовался, но почему бы нет?

Сообщение отредактировал Rean - Понедельник, 05 Декабря 2016, 00:52
ReanДата: Воскресенье, 04 Декабря 2016, 23:01 | Сообщение # 116 | Тема: Вопрос-Ответ (C++)
участник
Сейчас нет на сайте
LP, так и подумал, что опечатка в названии. Пока только глазами пробежался. Вопрос, программа выпадает, когда печатает, что ответ верный или наоборот? На какой итерации? Очень может быть, что ты там за диапазон вылазишь.
P.S. Пока глазами пробегался, заметил в ask():
Код

temp = (choice == rightAnswer) ? true : false;

Здесь тернарный не нужен, достаточно:
Код

temp = (choice == rightAnswer);


Сообщение отредактировал Rean - Воскресенье, 04 Декабря 2016, 23:04
ReanДата: Воскресенье, 04 Декабря 2016, 20:04 | Сообщение # 117 | Тема: Анимация
участник
Сейчас нет на сайте
valera_za, не понял, а зачем две ссылки на один и тот же аниматор? И при этом, не используемые? Опечатка?
timur2018, по факту достаточно одного правильно настроенного аниматора. Condition'ы в аниматоре выставлены? Советую ознакомиться с неплохим уроком "2D Roguelike".
ReanДата: Воскресенье, 04 Декабря 2016, 15:48 | Сообщение # 118 | Тема: Вопрос - Ответ (Game Maker)
участник
Сейчас нет на сайте
aedginvael, да, вспомнил, что у тебя несколько видов. Тогда через DrawGUI.
ReanДата: Воскресенье, 04 Декабря 2016, 14:59 | Сообщение # 119 | Тема: Вопрос - Ответ (Game Maker)
участник
Сейчас нет на сайте
aedginvael, используя математические привязки. Например, у тебя есть панель. Сделаем у спрайта панели origin по центру снизу (если размер спрайта, к примеру, 200x100, то origin разместим в 100x100). Далее, при создании объекта панели, то есть в событии Create, нам необходимо обозначить её место:
Код

x = window_get_width() div 2; // По середине ширины окна
y = window_get_height();        // Внизу окна

Теперь у панели есть своё место, жёстко привязанное к размерам окна. Остаётся только нарисовать её в DrawGUI. А также необходимо создать простое событие Draw с пустым скриптом, чтобы ничего в нём не отрисовывать. Иначе получится две панели.

Второй вариант: использовать только метод Draw. Но тогда необходимо привязываться к view_xview[] и view_yview[]. Принцип тот же самый, только код надо добавлять в событие Step (чтобы обновлять положение панели каждый "тик" - имеет смысл, к примеру, для жанра RTS):
Код

x = view_xview[0] + view_wview[0] div 2;
y = view_yview[0] + view_hview[0];

В этом варианте работать с событиями Draw и DrawGUI не нужно - если объект имеет галочку в Visible, то он автоматически будет отрисовываться. Только не стоит забывать указать Depth поменьше - чтобы панелька рисовалась поверх остальных объектов.
В этих двух вариантах есть один "косяк", который косвенно проявился у ProsstoBRO: при нажатии на панель, если под ней будут объекты, которые тоже обрабатывают нажатие мыши, произойдёт нежелательная сработка. Чтобы этого избежать, потребуется перехватывать нажатия клавиш мыши.

Есть ещё третий вариант: настройка и view_xport[] и view_yport[]. По идеи, этот вариант должен решить проблему с нажатием объектов под панелью. Но он не подойдёт для маленькой панельки снизу, потому как требует, чтобы игровая зона (например, карта из Warcraft) была вписана внутрь интерфейса (пример - тот же Warcraft).


Сообщение отредактировал Rean - Воскресенье, 04 Декабря 2016, 15:21
ReanДата: Воскресенье, 04 Декабря 2016, 02:38 | Сообщение # 120 | Тема: Какие концовки игр вам понравились?
участник
Сейчас нет на сайте
Наверное, самая сильная для меня концовка была в Mafia: The City of Lost Heaven. А также - Full Throttle. Но там скорее не концовка, а вся игра хватала и протаскивала от самого начала до конца.
Поиск:

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