Четверг, 02 Апреля 2026, 23:38

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
YellowAfterlifeДата: Пятница, 12 Февраля 2016, 22:12 | Сообщение # 381 | Тема: Проблема со столкновением
Сейчас нет на сайте
Это немного иначе делается.
В событии создания делается отдельная переменная xspeed = 0.
Она же изменяется при нажатии кнопок (как и hspeed).
И движение в шаге делается как
Код
var xsign; xsign = sign(xspeed);
repeat (abs(xspeed)) {
if (!place_meeting(x + xsign, y, Platform)) {
x += xsign;
} else { // врезались в стену
xspeed = 0;
break;
}
}

Таким образом игрок не застревает в стенах, поскольку из встроенной скорости используется лишь вертикальная, а по горизонтали движение идет отдельным циклом.


YellowAfterlifeДата: Суббота, 13 Февраля 2016, 00:40 | Сообщение # 382 | Тема: Предложения по улучшению
Сейчас нет на сайте
Цитата Xakep ()
Интересно, а на форуме когда нибудь сделают нормальное отображение исходного кода? С отступами, с подсветкой синтаксиса, и скроллинг кода как-то совсем бесит, постоянно в маленьком окошке скролить нечитабельный код. Вроде бы тут дофига программистов сидят, неужели это так сложно сделать?

Отступы скорее всего съедает форумный движок. Было бы интересно услышать от администрации, текущей ли он версии, и есть ли доступ к его исходному коду, т.к. действительно не смешно - в code-тегах съедает всё кроме первого отступа; вне них отступы только из Chrome отправляются и исчезают при редактировании.

А подсветку синтаксиса действительно можно было бы добавить, даже если посредством встраиваемого в страницу JS - я так недавно сделал скрипт для подсветки синтаксиса на под-форуме по GameMaker на Reddit'е и аналогичный для подсветки синтаксиса в справке по GameMaker. Тут, конечно, языков больше, но можно найти готовые решения, и прикрутить подсветку в соответствии с разделом, в котором размещено сообщение.

Ну и это окошко кода - нужно лишь добавить пару строк CSS кода, простите.


YellowAfterlifeДата: Суббота, 13 Февраля 2016, 16:59 | Сообщение # 383 | Тема: With. Other.
Сейчас нет на сайте
Код
with (obj_button_character_class) {
if (id != other.id) flag = false; // если id выбранного в цикле экземпляра не равен id выполняющего код вокруг цикла
}

Или даже просто
Код
with (obj_button_character_class) flag = false; // снимаем флаг всем экземплярам
flag = true; // ставим флаг текущему




Сообщение отредактировал YellowAfterlife - Суббота, 13 Февраля 2016, 17:00
YellowAfterlifeДата: Суббота, 13 Февраля 2016, 17:35 | Сообщение # 384 | Тема: With. Other.
Сейчас нет на сайте
Цитата zzzzza ()
YellowAfterlife, По первому способу. other.id - это что ли id объекта, в котором этот код написан?
Вот как до меня не дошло сделать вторым способом, я не понимаю :(
Все работает, спасибо)

Внутри цикла with, экземпляр, из которого цикл выполняется, хранится в other, а "текущий" (self) подменяется на перебираемые экземпляры.
То есть
Код

show_debug_message(id); // 1000001
with (some) {
show_debug_message(id); // 1000002
show_debug_message(other.id); // 1000001
}


YellowAfterlifeДата: Среда, 17 Февраля 2016, 21:17 | Сообщение # 385 | Тема: Предложения по улучшению
Сейчас нет на сайте
Цитата Alexan-Dwer ()
Xakep, если да, версию Вашего FireFox'a напишите, пожалуйста smile

У меня Firefox 44.0.2 на 64-битной Windows 8.1, всё работает нормально. В отличии от Chrome, Firefox открывает некоторые страницы как всплывающие окна (а не вкладки), но это можно и отдельным скриптом исправить.


YellowAfterlifeДата: Четверг, 18 Февраля 2016, 17:55 | Сообщение # 386 | Тема: Не правильно работает проверка. JS
Сейчас нет на сайте
Цитата last2424 ()
Vostrugin, да, вытаскиваю данные из куков и туда же их сохраняю при нажатие на кнопку, проверял даже, верные значения в переменных выводил, но условие работать ни в какую не хочет.
Вот полный код:

getCookie возвращает строку или undefined.
Сравнивать как autoplay == "true", или же переводить в булевую форму на стадии чтения cookie.


YellowAfterlifeДата: Воскресенье, 21 Февраля 2016, 12:08 | Сообщение # 387 | Тема: Феерическая расстановка точек над html5
Сейчас нет на сайте
Цитата ArtGr ()
Вдогонку к ответам, подскажу также отличную вещь - Tululoo Game Maker.

Спойлеры, конечно, но Tululoo немножечко заброшен. Года эдак с 2013.
Я в 2011-2012 годах помогал исправлять JS движок в программе (см. низ вкладки "features" на сайте).

Увы, если HTML5 движок бесплатный, и у его авторов в нем нет прямого личного интереса (к примеру, автор Phaser его активно использует для контрактной работы), шансы продолжительного развития не очень высоки - работы горы, и для оптимизации нужны довольно специфичные знания и количества устройств для проверки.
Помнится, основной автор программы (Zoltan Persich) в какой-то момент хотел переписать сам редактор для работы в браузере, но по тем или иным причинам (см. горы работы?) это ничем не закончилось, и он вернулся к написанию маленьких платных инструментов.

Конечно, технически, кто угодно может скачать и исправить\дополнить исходный код программы (редактор на PureBasic, движок на JS), но пока что я ни за кем таких героических подвигов не замечал.


YellowAfterlifeДата: Суббота, 27 Февраля 2016, 06:48 | Сообщение # 388 | Тема: Открыть недокаченый файл psd
Сейчас нет на сайте
Попробовать открыть другими программами, способными импортировать или обрабатывать PSD файлы - некоторые могут оказаться менее привередливы к формату, чем непосредственный фотошоп.

YellowAfterlifeДата: Суббота, 27 Февраля 2016, 06:56 | Сообщение # 389 | Тема: Защита от cheat engine и подобных программ.
Сейчас нет на сайте
Большую часть таких проблем решают проверкой данных на стороне сервера - неправомерные действия отменяются (с уведомлением игрока), игроку насчитываются штрафные баллы. По превышению допустимого количества баллов в той или иной категории игрок с сервера выбрасывается, и куда-нибудь записывается примечание о сем событии для рассмотрения модераторами.

К примеру, speedhack обрабатывается с помощью проверок, что действия (движение, стрельба) выполняются с правильной скоростью (с учетом небольших погрешностей в пределах 5%).

Вещи вроде передачи ников и прочей важной информации всегда делаются через сервер.


YellowAfterlifeДата: Суббота, 27 Февраля 2016, 19:53 | Сообщение # 390 | Тема: Вопрос по интерфейсу Game Maker Studio.
Сейчас нет на сайте
Снять галочку "Enable pop-out windows" в File - Preferences:

И перезапустить программу.




Сообщение отредактировал YellowAfterlife - Суббота, 27 Февраля 2016, 19:53
YellowAfterlifeДата: Среда, 02 Марта 2016, 11:58 | Сообщение # 391 | Тема: [GMS] Перемешивание ds_map
Сейчас нет на сайте
Код
var k = ds_map_find_first(map);
repeat (floor(random(ds_map_size(map)))) k = ds_map_find_next(map, k);
var v = ds_map_find_value(map, k);
// в k, v теперь случайные ключ+значение из map

Вкратце, функциями перебора пар ключей-значений находится случайная пара.

"Перемешивания" ds_map не бывает, потому что порядка у пар нет.


YellowAfterlifeДата: Среда, 02 Марта 2016, 12:59 | Сообщение # 392 | Тема: Изометрические вопросы!
Сейчас нет на сайте
Я недавно писал для блога запись о изометрических сетках. Там и про сортировку тоже - объекты рисуются по клетке за раз; клетки рисуются рядами; объекты внутри отдельных клеток уже сортируются по позиции. В записи есть интерактивные демонстрации и несколько примеров на различных ЯП.

Если на GPU, просчет пересечений будет стоить больше, чем рисование. Если на CPU... а почему на CPU кстати?




Сообщение отредактировал YellowAfterlife - Среда, 02 Марта 2016, 14:52
YellowAfterlifeДата: Четверг, 03 Марта 2016, 07:53 | Сообщение # 393 | Тема: Проблема PyGame
Сейчас нет на сайте
Цитата VaVter ()
Код

# -*- coding: utf-8 -*-
#
import pygame

win = pygame.display.set_mode((1300, 700))
pygame.display.set_caption("Hellow pygame")

scr = pygame.Surface((1300, 700))

done = True
while done:
    for e in pygame.event.get():
        if e.type == pygame.QUIT:
            dome = False
    
    win.blit(scr, (0,0))
    pygame.display.flip()

Так ведь опечатка - в условии у тебя done, а меняешь переменную dome (с M вместо N).




Сообщение отредактировал YellowAfterlife - Четверг, 03 Марта 2016, 07:53
YellowAfterlifeДата: Пятница, 04 Марта 2016, 06:23 | Сообщение # 394 | Тема: Обрезать спрайт с помощью другого спрайта?
Сейчас нет на сайте
Находятся "самая левая" и "самая правая" точки, если смотреть на плоскость с точки начала света.
Для прямоугольных стен это делается вот таким странным куском кода:

Потом из поверхности с нарисованным в нее светом вырезается (рисуется с draw_set_blend_mode(bm_subtract)) трапеция, у которой одна сторона - эти точки, а другая - пропорционально отдаленный отрезок.
Код
var adx = ax - lx, ady = ay - ly;
var adl = sqrt(adx * adx + ady * ady);
var bdx = bx - lx, bdy = by - ly;
var bdl = sqrt(bdx * bdx + bdy * bdy);
var fl = 1000; // расстояние отдаления, должно быть больше максимального радиуса источника света
var afx = ax + adx / adl * fl;
var afy = ay + ady / adl * fl;
var bfx = bx + bdx / bdl * fl;
var bfy = by + bdy / bdl * fl;

afx, afy, bfx, bfy - вторая пара координат трапеции.

Результат:

Наспех написанная демка на JS




Сообщение отредактировал YellowAfterlife - Пятница, 04 Марта 2016, 06:44
YellowAfterlifeДата: Четверг, 10 Марта 2016, 11:29 | Сообщение # 395 | Тема: Вопрос - Ответ (Game Maker)
Сейчас нет на сайте
Цитата TM_Amber ()
Банальный, наверное, вопрос, но всеж. Возникла потребность передать аргументы из скрипта в создаваемый (им же) объект. Знакомый программист предлагал использовать with obj{} - но по какой-то причине он не сработал. Пробовал объявлять пустые переменные в объекте при создании, и без объявления - с with данные банально не передаются. Каким образом можно сделать передачу?

Дело в порядке выполнения - instance_create создает экземпляр и выполняет его событие создания до возврата.
Следовательно,
Код
// obj_some > create:
image_angle = direction;

// ...
with (instance_create(x, y, obj_some)) direction = random(360);

Никогда не сможет "заметить" direction == random(360) в создании.

То есть либо проделывать манипуляции над изменяемыми переменными там же, где вызывается instance_create, или перенести часть кода объекта в alarm или user event.


YellowAfterlifeДата: Воскресенье, 13 Марта 2016, 11:11 | Сообщение # 396 | Тема: Какой конструктор пойдет для моей игры?
Сейчас нет на сайте
Конструктор - Unity3d или UnrealEngine. Оба предназначены для создания трехмерных игр, и для первого можно найти большое количество готовых решений для тех или иных компонентов.

Модели - хитрый вопрос. Если перья будут нарисованы в текстуре, выглядеть это будет не слишком пестро. Если же перья будут сделаны "торчащими" на поверхности модели полигонами, то много таких моделей за раз не нарисуешь (не говоря уже о размере файлов). Следовательно, придется искать или платить кому-то за шейдер, что будет динамически покрывать нужные поверхности моделек перьями, и модифицировать существующие модели+текстуры под свои нужды.
Впрочем, от каких-то инвестиций скорее всего не скрыться, так как должного качества анимации для моделек все равно нужно будет как-то делать.


YellowAfterlifeДата: Воскресенье, 13 Марта 2016, 12:11 | Сообщение # 397 | Тема: Какой конструктор пойдет для моей игры?
Сейчас нет на сайте
Цитата VelociRaptor ()
а 3dRad не пойдет?

Насколько я знаю, 3D RAD (и 3impact тех же авторов) уже очень давно не разрабатываются. Делать игру на заброшенном конструкторе\движке - сомнительная затея, так как можно наткнутся на проблему с программой, и ничего с этим сделать нельзя будет.


YellowAfterlifeДата: Воскресенье, 17 Апреля 2016, 04:54 | Сообщение # 398 | Тема: Вопрос - Ответ (Game Maker)
Сейчас нет на сайте
Цитата Evklid ()
Пишу код <if obj_t_aim.image_angle=(от 0 до 10) {sprite_index=spr_t_rifle_stop_right; image_speed=1/3};}> . Как реализовать это (от 0 до 10)?

Вариант 1:
Код
if (obj_t_aim.image_angle >= 0 && obj_t_aim.image_angle < 10) ...

Вариант 2: добавить скрипт between
Код
/// between(value, min, max)
return argument0 >= argument1 && argument0 < argument2;

и потом
Код
if (between(obj_t_aim.image_angle, 0, 10)) ...


YellowAfterlifeДата: Воскресенье, 17 Апреля 2016, 15:13 | Сообщение # 399 | Тема: Вопрос - Ответ (Game Maker)
Сейчас нет на сайте
Цитата ASH2 ()
не подскажете, какая функция захватывает нажатие на кнопки крестовины у xbox контроллера? Все кнопки и стики нашёл, а крестовина что-то так и не обнаружилась :/

Странно, потому что в справке даже картинка есть:
http://docs.yoyogames.com/source/dadiospice/002_reference/mouse,%20keyboard%20and%20other%20controls/gamepad%20input/index.html
Если обстоятельства (необходимость самоистязаний, например) требуют использования устаревшей на 8 лет версии, то тогда joystick_pov.


YellowAfterlifeДата: Понедельник, 02 Мая 2016, 06:31 | Сообщение # 400 | Тема: [GMS] Cannot function as a runner
Сейчас нет на сайте
Ошибка буквально гласит, что нужно собрать приложение в APK, потому что в тестовой версии (что запускается через раннер) не поддерживаются какие-то из используемых разрешений. Это в Global Game Settings регулируется:

Использование нативных расширений так же препятствует тестированию через раннер, поскольку они не могут быть динамически подгружены в это приложение (а лишь статически при сборке APK).


Поиск:

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