Вторник, 18 Января 2022, 05:04

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Форум игроделов » Записи участника » MrSlap [81]
Результаты поиска
MrSlapДата: Суббота, 06 Июня 2015, 00:26 | Сообщение # 21 | Тема: Ограничение CPU для GMS
почетный гость
Сейчас нет на сайте
EfimovMax, да, как бы, я могу забацать себе гигантские текстуры и 4k разрешение, с комнатами огромного размера. Но, например ноутбук у меня не запустит этот проект, скажет, что память кончилась в процессе загрузки. Ясно дело, что я не собираюсь рисовать графику на 4k, но в целом, хочется самому протестировать, какое качество картинки может быть на 1гб ОЗУ, и ограниченной видеопамяти. =)

Создаю интерактивную повесть.
MrSlapДата: Пятница, 05 Июня 2015, 23:48 | Сообщение # 22 | Тема: Ограничение CPU для GMS
почетный гость
Сейчас нет на сайте
А есть ли в GMS функция принудительного снижения производительности, чтобы испытывать приложение на низких оборотах?

Создаю интерактивную повесть.
MrSlapДата: Суббота, 30 Мая 2015, 01:02 | Сообщение # 23 | Тема: Движение к объекту.
почетный гость
Сейчас нет на сайте
Maxaon, нет, друг, просто переменные - вообще вещь универсальная и очень полезная. Она не только позволяет сократить ширину строк, но и расширить функционал всевозможных фич, производимых с объектом, и даже повысить читабельность кода! =)

P.S. прошу прощения за оффтопчик.


Создаю интерактивную повесть.
MrSlapДата: Понедельник, 25 Мая 2015, 13:14 | Сообщение # 24 | Тема: Что случилось со сравнениями в ГМС?
почетный гость
Сейчас нет на сайте
Глюк, у меня в GMS подобные функции работают без нареканий. Попробуй проверить значения переменных в реальном времени, выведи их в draw GUI через draw_text, может ошибка где-то в коде всё-таки, а не в if?

Создаю интерактивную повесть.
MrSlapДата: Понедельник, 18 Мая 2015, 23:01 | Сообщение # 25 | Тема: Постепенное увеличение объекта
почетный гость
Сейчас нет на сайте
Грозный, непосредственно цифрами. например:

Код
draw_line(vw*0.5-ver_x-50,vh*0.5-ver_y,vw*0.5-ver_x-50,vh*0.5+ver_y)/

-50 это отступ влево от центра экрана, не считая отступа переменной ver_x. Для правой линии, соответственно нужно +50 (или то число пикселей, откуда у тебя должно начинаться движение линий).


Создаю интерактивную повесть.
MrSlapДата: Понедельник, 18 Мая 2015, 13:15 | Сообщение # 26 | Тема: Постепенное увеличение объекта
почетный гость
Сейчас нет на сайте
XDominator, я потому и предлагал парню просто перейти на линии в 1 пиксель ) там не надо скосы добавлять - но эмуляция движения по туннелю создаётся с тем же успехом.

Создаю интерактивную повесть.
MrSlapДата: Понедельник, 18 Мая 2015, 00:20 | Сообщение # 27 | Тема: Постепенное увеличение объекта
почетный гость
Сейчас нет на сайте
Грозный, если объектами, то назначаешь переменны в Create типа
Код
xx=0   
ys=1

А в draw пишешь что-то вроде
Код
draw_sprite_stretched(sprite,subimg,x,y,w,h)

Где sprite - это спрайт отрезка стены, который должен двигаться, subimg -1 (кадр спрайта - не двигается), вместо x пиши координату расположения по икс+xx(положение спрайта - твой дальний край, где рисуется стена), y - соответственно высота, w = 1, спрайт по x всегда остаётся тонким. Вместо h пишешь ys (y_scale - то есть масштаб по вертикали).
Потом, если надо двигать, например назначаешь в step кнопку - if keyboard_check(vk_up) - например, в зависимости от того, как он должен двигаться. И в этом if пишешь:
Код
{
xx-=1;
ys+=0.1; //надо подгонять по масштабам твоей комнаты - спрайт будет расширяться быстро, уменьшай значение. Можно и формулу вывести, в зависимости от угла наклона стены (перспективы), но мне ленно.
}

Примерно так это работает. Если надо чтобы оно двигалось перманентно, то делаешь в if вместо клавиши, ограничение, которое сбрасывает x и h до базовых значений.


Создаю интерактивную повесть.

Сообщение отредактировал MrSlap - Понедельник, 18 Мая 2015, 00:37
MrSlapДата: Воскресенье, 17 Мая 2015, 21:28 | Сообщение # 28 | Тема: Постепенное увеличение объекта
почетный гость
Сейчас нет на сайте
Грозный, потому что события в create выполняются единожды при создании объекта... Вот он в первом шаге проверил... и всё.
А у тебя стены картинками сделаны?
Я бы предложил попробовать draw_line

что-то вроде:
Create
Код
vx=view_xview[0]//сокращаем длину писанины
vy=view_yview[0]
vw=view_wview[0]
vh=view_hview[0]

hor_x=0 //горизонтальное расширение линии
hor_y=0 //горизонтальный спуск линии
ver_x=0 //вертикальный спуск
ver_y=0 //ширина вертикали


Step
Код
if keyboard_check(vk_up)
    {
    hor_x+=4//скорость увеличения перспективы
    hor_y+=4//ощущение увеличения скорости движения (как то так)
    if hor_x>vw*0.5 {hor_x=0; hor_y=0} //если уходит за пределы экрана
     
    ver_x+=4 //приближение стены
    ver_y+=4 //высота стены при приближении
    if ver_x>vw*0.5 {ver_x=0; ver_y=0} //если уходит за пределы экрана
    }


Draw
Код
draw_line(vw*0.5+hor_x,vh*0.5+hor_y,vw*0.5-hor_x,vh*0.5+hor_y)//пол
draw_line(vw*0.5-ver_x,vh*0.5-ver_y,vw*0.5-ver_x,vh*0.5+ver_y)//левая стена
draw_line(vw*0.5+ver_x,vh*0.5-ver_y,vw*0.5+ver_x,vh*0.5+ver_y)//правая стена


Там только + и - у отрисовки линий подогнать под размеры твоей перспективы, в общем, поэкспериментируй, может получишь желаемое )

Добавлено (17 мая 2015, 21:28)
---------------------------------------------
Грозный, и ещё он у тебя не будет работать потому, что if (x != xprevious) выполняет проверку положения координаты х относительно предыдущего шага. А в предыдущем шаге координата объекта не двигается.


Создаю интерактивную повесть.
MrSlapДата: Воскресенье, 17 Мая 2015, 20:28 | Сообщение # 29 | Тема: Постепенное увеличение объекта
почетный гость
Сейчас нет на сайте
Грозный, почему не получится? А увеличивать Y линии, в зависимости от её X?

Создаю интерактивную повесть.
MrSlapДата: Среда, 13 Мая 2015, 00:16 | Сообщение # 30 | Тема: Поиск существующих предметов
почетный гость
Сейчас нет на сайте
EfimovMax, хм, а если нет положительных значений, выскакивает ошибка, и если последнее не положительно - тоже ошибка.
Цитата
Push :: Execution Error - Variable Index [0,15] out of range [1,15] - -5.f_weapon(100071,15)
at gml_Script_scr_HUD (line 73) - while f_weapon[weapon]=0

Та же ошибка, если последнее значение не является единицей. А если всё по нолям, но последнее 1, то цикл останавливается на последнем значении и не идёт в ноль. Странно.

Добавлено (13 мая 2015, 00:13)
---------------------------------------------
EfimovMax, а, не заметил коммент. А если туда докрутить брейк какой-нибудь, типа после перечисления всех значений - брейк?

Добавлено (13 мая 2015, 00:16)
---------------------------------------------
EfimovMax, ага, вот так:

Код
if keyboard_check_pressed(key[9])     
        {
        weapon+=1
        if weapon>14 weapon=0    
        while f_weapon[weapon]=0     
           {     
           weapon+=1
           if weapon>14 {weapon=0 break;}
           }
        }


Заработало во всех вариациях.


Создаю интерактивную повесть.
MrSlapДата: Вторник, 12 Мая 2015, 23:50 | Сообщение # 31 | Тема: Поиск существующих предметов
почетный гость
Сейчас нет на сайте
EfimovMax, а, и правда. Спасибо. Ща вкручу его в код, посмотрим, как зачирикает.

Создаю интерактивную повесть.
MrSlapДата: Вторник, 12 Мая 2015, 23:34 | Сообщение # 32 | Тема: Поиск существующих предметов
почетный гость
Сейчас нет на сайте
EfimovMax, что подразумевает под собой NowWeapon? да и подсчитать количество доступных пушек не пробелма. Проблема в том, чтобы параметр weapon присваивал поочерёдно только те f_weapon, которые равняются 1. Минуя те, которые идут с нулями. Ну, чтобы если f_weapom [1-3]=0, а f_weapom [4]=1, то нажав vk_1 он бы сразу перескочил на 5 значение. Я уже трёхэтажную фигню нарисовал, и всё равно где-то не могу досмотреть момент...

Код
for (w=0 w<14 w+=1)
    {
    if f_weapon[w]=1 //если волына под номером w присутствует
       {
       for (e=0 e<14 e+=1)
       {
       enabled[e]=w //присвоить её порядковый номер переменной enable - реестр доступных пух.
       break;
       }
       }
    }
if keyboard_check_pressed(key[9])
       {
       weapon=enabled[next] //пуха равна первой в списке доступных пух
       next+=1
       }


получается enabled принимает значение последнего оружия в списке. Не могу понять, как бы мне поочерёдно то его выстроить. Брейк там будет лишний, тогда w применит только первое значение. А надо все по очереди. Чую - не хватает куска кода, который бы рассортировал мои f_weapon по порядку в enable.


Создаю интерактивную повесть.
MrSlapДата: Вторник, 12 Мая 2015, 21:27 | Сообщение # 33 | Тема: Поиск существующих предметов
почетный гость
Сейчас нет на сайте
Снова здравствуйте. В очередной раз нахожусь в ситуации, где ответ ускользает от меня...

В игре планируется открывать различные виды оружия. Есть список weapon - где по порядку указаны волыны от худшей к лучшей.
Есть проверка f_weapon[weapon] - которая должна определять наличие такого оружия в "инвентаре". Ну и нажатием клавиши 1 герой должен получать следующее доступное оружие.
Допустим, что у героя есть в наличии 1, 2 и 5 вид оружия (f_weapon[1]=1 и так с 2 и 5).
Как бы выдавать эти пушки в том же порядке, минуя пустые "ячейки"? При том, что пролистав все ячейки weapon опять равен 0 - без оружия.


Создаю интерактивную повесть.
MrSlapДата: Понедельник, 11 Мая 2015, 05:52 | Сообщение # 34 | Тема: Сурфейс под деревом
почетный гость
Сейчас нет на сайте
YellowAfterlife, я неправильно выразился. Если дерево над темнотой - то оно не затемняется. И торчит такое яркое...
А если сделать нормально - то фонарик начинает выше кроны светить... Не приходит в голову, как замиксовать дерево в сюрф...

Добавлено (10 мая 2015, 17:52)
---------------------------------------------
Tymonr, там сложилось, что свет фонарика рисуется на сюрфе темноты. И чем выше я depth'аю темноту, тем выше, соответственно и фонарик.
Более того, в нём сюрф и проигрывается..

Добавлено (10 мая 2015, 17:57)
---------------------------------------------
YellowAfterlife, уточнение не прочитал. Будут меняться погода и освещение... Хочется решения непосредственным образом.

Добавлено (11 мая 2015, 05:52)
---------------------------------------------
Проблема решена простейшим путём - дерево рисуется выше сюрфа, однако над его спрайтом рисуется спрайт_екст его тени с той же переменной, что и клир_альфа сурфейса.


Создаю интерактивную повесть.
MrSlapДата: Воскресенье, 10 Мая 2015, 17:38 | Сообщение # 35 | Тема: Сурфейс под деревом
почетный гость
Сейчас нет на сайте
Здравствуйте, господа форумчане.
Вопрос возник насущный.
У меня тут TDS и, обычно в игровом пространстве будет темно, но есть источники света, у героя, например - фонарик.
А есть на карте - деревья, такие - с раскидистыми ветвями.
Задача: герой с фонариком идут под деревом, но свет фонарика проходит над ним. Тогда я поигрался с глубиной, и теперь дерево растёт выше темноты ночной! Это плохо.

Есть у кого здравая идея, как с этим совладать?


Создаю интерактивную повесть.

Сообщение отредактировал MrSlap - Воскресенье, 10 Мая 2015, 17:38
MrSlapДата: Пятница, 08 Мая 2015, 21:02 | Сообщение # 36 | Тема: Сохранение скриншотов
почетный гость
Сейчас нет на сайте
YellowAfterlife, понятно, благодарю. Хоть и постоянно втыкаю в справку GMS, а многие вещи всё-равно как-то мимо проскальзывают. И не всегда всё понятно =)

Добавлено (08 мая 2015, 21:02)
---------------------------------------------
YellowAfterlife, ещё такой вопрос, при добавлении тайлов в комнату, код screen_save начал выполняться довольно долго. Есть способ избежать этой проблемы?


Создаю интерактивную повесть.
MrSlapДата: Четверг, 07 Мая 2015, 23:47 | Сообщение # 37 | Тема: Строковые числа с предварительным нулём
почетный гость
Сейчас нет на сайте
YellowAfterlife, доходчиво, ещё раз благодарю.

Создаю интерактивную повесть.
MrSlapДата: Четверг, 07 Мая 2015, 00:01 | Сообщение # 38 | Тема: Строковые числа с предварительным нулём
почетный гость
Сейчас нет на сайте
FadeBaker, ага, и цифра появляется слева, правильно?
То есть в примере YellowAfterlife, string_repeat("0", current_minute < 10) - ноль будет рисоваться перед числом, если то меньше 10?

И у меня есть обратный вопрос. А если я хочу сократить 2015 до 15? Ну, чтобы это был год в двузначном сокращении - тогда вообще всё красивенько получается =)


Создаю интерактивную повесть.
MrSlapДата: Среда, 06 Мая 2015, 22:49 | Сообщение # 39 | Тема: Сохранение скриншотов
почетный гость
Сейчас нет на сайте
YellowAfterlife, а если я перед сохранением игры и загрузкой нового скриншота удаляю предыдущий спрайт
Код
if sprite[slot]!=spr_default_load
{sprite_delete(sprite[slot])};

А уже потом сохраняю скриншот и подгружаю его add_sprite'ом. Принцип работы тот же? Или есть причины, по которым sprite_replace эффективнее?


Создаю интерактивную повесть.
MrSlapДата: Среда, 06 Мая 2015, 22:44 | Сообщение # 40 | Тема: Строковые числа с предварительным нулём
почетный гость
Сейчас нет на сайте
YellowAfterlife, с этого места чуточку поподробнее, пожалуйста.
Чем конкретно занимается string_repeat? =)


Создаю интерактивную повесть.
Форум игроделов » Записи участника » MrSlap [81]
  • Страница 2 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

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