Результаты поиска
| |
zzzzza | Дата: Суббота, 24 Февраля 2018, 19:13 | Сообщение # 1 | Тема: Проблема, связанная с интерполяцией |
участник
Сейчас нет на сайте
| Помогло, спасибо!
|
|
| |
zzzzza | Дата: Пятница, 23 Февраля 2018, 18:21 | Сообщение # 2 | Тема: Проблема, связанная с интерполяцией |
участник
Сейчас нет на сайте
| Всем привет!
Делаю проект в GMS 2 под Windows. В настройках поставил галочку "Интерполировать цвета между пикселями" (без нее все пиксельное). Но появилась проблема: когда я рисую текст, допустим, белым цветом, некоторые символы рисуются серым (точнее это я их вижу серым, хотя цвет используется белый).
Для наглядности два скриншота:
Без интерполяции все нормально отображается.
Как решить эту проблему?
Заранее спасибо!
|
|
| |
zzzzza | Дата: Понедельник, 06 Ноября 2017, 21:49 | Сообщение # 3 | Тема: Не могу скомпилировать (YYC) |
участник
Сейчас нет на сайте
| Всем привет!
Всегда использовал VM компилятор и все работало отлично! Сейчас столкнулся с падением производительности. Почитал и узнал, что это может исправить YYC. Попробовал запустить и увидел такую ошибку:
Код Build for architecture - x86
linking Ballistic.exe Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384 Copyright (C) Microsoft Corporation. All rights reserved. fatal error RC1110: could not open C:\ProgramData/GameMakerStudio2/Cache/runtimes\runtime-2.1.2.172/yyc/Win32\Runner.rc LINK : fatal error LNK1181: cannot open input file 'YoYo.lib' C:\ProgramData/GameMakerStudio2/Cache/runtimes\runtime-2.1.2.172/yyc/Win32\Runner.manifest : general error c1010070: Failed to load and parse the manifest. ??????? ?? ??????? ????? ????????? ????. Stats : GMA : Elapsed=407419,2462 Stats : GMA : sp=1492,au=0,bk=0,pt=0,sc=61,sh=0,fo=48,tl=0,ob=332,ro=6,da=0,ex=1,ma=12,fm=0xA21D69E42A20
C:\Windows\system32\cmd.exe exited with non-zero status (31) elapsed time 00:06:55.4693170s for command "C:\ProgramData/GameMakerStudio2/Cache/runtimes\runtime-2.1.2.172/bin/Igor.exe" -options="C:\Users\ttt\AppData\Local\GameMakerStudio2\GMS2TEMP\build.bff" -- Windows Run started at 11/06/2017 20:38:33 "cmd" /c subst Z: /d
elapsed time 00:00:00.0468813s for command "cmd" /c subst Z: /d started at 11/06/2017 20:45:28 FAILED: Run Program Complete
Причем "Build for architecture - x86" шел около 7 минут и только потом начали появляться ошибки.
Что делать? Помогите, пожалуйста.
Заранее спасибо!
|
|
| |
zzzzza | Дата: Суббота, 29 Июля 2017, 21:53 | Сообщение # 4 | Тема: Как вызвать клавиатуру Android |
участник
Сейчас нет на сайте
| Клавиатура вызовется, если будешь использовать функции типа "get_string()", "get_integer()" и т.д. Но скорее всего этот вариант тебе не подойдет, поэтому либо рисуешь сам и делаешь весь функционал, либо покупаешь в yoyomarket'е, либо пишешь вызов клавиатуры на Java или Objective C и прикрепляешь к GMS.
|
|
| |
zzzzza | Дата: Воскресенье, 23 Июля 2017, 19:24 | Сообщение # 5 | Тема: Падение FPS при использование сюрфейса. |
участник
Сейчас нет на сайте
| Цитата Морриарте ( ) Обойтись видами не получится? К сожалению, нет(Добавлено (23 июля 2017, 19:24) --------------------------------------------- Все, сделал: оказывается большую нагрузку оказывает "set" и "reset" сюрфейса. Для тех, кто столкнулся с такой же проблемой вот переделанный код:
Код if (surface_exists(SURF)) { surface_set_target(SURF); draw_clear_alpha(make_color_rgb(77, 77, 77), 1);
with (OBJ) { //РИСУЕМ ВСЕ НЕОБХОДИМОЕ } surface_reset_target(); draw_surface(SURF, x, y); }
|
|
| |
zzzzza | Дата: Воскресенье, 23 Июля 2017, 17:39 | Сообщение # 6 | Тема: Падение FPS при использование сюрфейса. |
участник
Сейчас нет на сайте
| Всем привет! Стабильно в игре 29-30 fps, но когда отрисовываю surface - fps падает до 12-13. Вот как происходит отрисовка fps в DRAW (без лишнего кода):
Код if (surface_exists(SURF)) { surface_set_target(SURF); draw_clear_alpha(make_color_rgb(77, 77, 77), 1); surface_reset_target();
with (OBJ) { surface_set_target(other.SURF); //РИСУЕМ ВСЕ НЕОБХОДИМОЕ surface_reset_target(); } draw_surface(SURF, x, y); }
Подскажите, пожалуйста, в чем может быть проблема?
Сообщение отредактировал zzzzza - Воскресенье, 23 Июля 2017, 17:40 |
|
| |
zzzzza | Дата: Пятница, 07 Июля 2017, 11:59 | Сообщение # 7 | Тема: Недостаточно ОЗУ игре на GMS 2 |
участник
Сейчас нет на сайте
| Понял, буду разбираться. Большое спасибо!
|
|
| |
zzzzza | Дата: Пятница, 07 Июля 2017, 02:37 | Сообщение # 8 | Тема: Недостаточно ОЗУ игре на GMS 2 |
участник
Сейчас нет на сайте
| Vuvk, во мне так же кажется.
|
|
| |
zzzzza | Дата: Четверг, 06 Июля 2017, 20:12 | Сообщение # 9 | Тема: Недостаточно ОЗУ игре на GMS 2 |
участник
Сейчас нет на сайте
| TLT, я понимаю что такое комната и видимый экран и понимаю, что объект за пределами видимой области тоже память жрет и его надо деактивировать. Проблемы в этом точно нет. Про дубли не очень понял, но думаю, что у меня такого нет. Вот такой код у меня в каждом объекте при его создание:
Код var nameSpr, posInNameSpr; nameSpr=sprite_get_name(sprite_index); posInNameSpr=string_pos(global.normalRezolutionSprite, nameSpr); if (posInNameSpr!=0) {nameSpr=string_replace(nameSpr, global.normalRezolutionSprite, global.rezolutionSprite);} sprite_index=asset_get_index(nameSpr);
Он выбирает спрайт, который надо использовать. "global.normalRezolutionSprite" по умолчанию равняется "mdpi". "global.rezolutionSprite" определяется при запуске игры и больше никогда не меняется.
А что касается второй части твоего сообщения: то я бы не задавал вопрос, если бы не хотел оптимизировать игру. И что-то я не заметил в своем прошлом сообщение намека на то, что я встаю в штыки, поэтому к чему эта агрессия - я не понимаю.
Добавлено (06 июля 2017, 20:09) --------------------------------------------- ASH2, имеете ввиду из файла?
Добавлено (06 июля 2017, 20:12) --------------------------------------------- Морриарте, сейчас попробую. Что такое атлас и как на группы разделить?
Сообщение отредактировал zzzzza - Четверг, 06 Июля 2017, 20:13 |
|
| |
zzzzza | Дата: Четверг, 06 Июля 2017, 15:35 | Сообщение # 10 | Тема: Недостаточно ОЗУ игре на GMS 2 |
участник
Сейчас нет на сайте
| За пределы комнаты ничего не уходит. Да и не может, в принципе, так как все объекты статичны и для игры нужна только мышка. Система у меня такая: Есть комната "r_start", которая загружается самой первой. В ней нет ни одного объекта. Есть только код при создание комнаты, в котором определяется разрешение экрана и осуществляется переход в нужную комнату. Далее комнаты не меняются, просто удаляются ненужные объекты и создаются новые. В комнате одновременно используется 16 объектов (ПРИМЕРНО). Каждый объект использует 1 спрайт, который содержит 2 изображения. Если брать сам проект в GMS, то общее количество спрайтов около 400. И я так понимаю, что при запуске игры загружаются все в память.
Структуры очищаю, объекты ненужные удаляю. В чем может быть проблема - не понимаю.
Посмотрел на "ZUK Z1" сколько ОЗУ занимает запущенная игра. Показывает ~6 мб, но максимальная значение - ~1.1 гб. Я так понимаю, что игра занимает столько много ОЗУ при запуске, так как загружает в нее все, но это лишь мое предположение. Такой же вывод можно сделать и из того, что сама игра запускается долго (по сравнению с другими играми. Примерно 2-3 секунды).
Как можно это исправить?
|
|
| |
zzzzza | Дата: Четверг, 06 Июля 2017, 14:01 | Сообщение # 11 | Тема: Недостаточно ОЗУ игре на GMS 2 |
участник
Сейчас нет на сайте
| Всем привет! Делаю игру в GMS 2. По мере создания тестировал игру на разных устройствах, в том числе и на "Samsung Galaxy S1 Plus". Сначала на нем все нормально работало, но по мере увеличения спрайтов стало плохо: сначала просто не отображались некоторые спрайты у объектов, а сейчас он просто выключает игру из-за недостатка озу (на "Galaxy S1 Plus" ее 512 мб.). Что качается других девайсов, то на "Samsung Galaxy S4" и "ZUK Z1" работает все отлично, но там и ОЗУ в 4 раза больше, как минимум. Единственное, игра начала дольше загружаться. Я так понял, что это из-за того, что загружаются все спрайты в ОЗУ. Все спрайты разделены на группы: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi. Сделано это для нормального отображения на всех разрешениях. На каждом устройстве используется нужная группа, все остальные не нужны, поэтому их можно просто не загружать. Почитал и наткнулся на такую функцию "draw_texture_flush()", но она вообще ничего не изменила.
Что можно сделать?
Заранее спасибо!
|
|
| |
zzzzza | Дата: Суббота, 27 Февраля 2016, 17:38 | Сообщение # 12 | Тема: Защита от cheat engine и подобных программ. |
участник
Сейчас нет на сайте
| YellowAfterlife, по поводу спидхака. На сервере я буду проверять, с какой скоростью передаются координаты, а вот что делать с частотой отправления этих данных со стороны клиента? Если я правильно понимаю, то клиент будет чаще отправлять данные, что плохо отразиться на сервере. Или я что-то не так понимаю? Добавлено (27 февраля 2016, 17:38) --------------------------------------------- YellowAfterlife, что-то ступил я. Мы же его сразу отключим, и больше проблем не будет. Спасибо, буду делать)
|
|
| |
zzzzza | Дата: Пятница, 26 Февраля 2016, 17:35 | Сообщение # 13 | Тема: Защита от cheat engine и подобных программ. |
участник
Сейчас нет на сайте
| JackNazaryan, думал так сделать, но хотел узнать именно про хранение в ds_map'е. Никнейм хранится на сервере, просто один раз передается другим клиентам, чтобы отобразить его. Tymonr, разницы никакой, про ник это был пример. Главная суть вопроса была в ds_map'е. Тогда как по вашему человек должен, К ПРИМЕРУ, создавать ту же мморпг, если даже не будет пытаться её сделать? Ваш ответ не объективен, и не несет в себе никакой полезной информации. Отсюда напрашивается вопрос: зачем вы вообще писали?
|
|
| |
zzzzza | Дата: Пятница, 26 Февраля 2016, 10:38 | Сообщение # 14 | Тема: Защита от cheat engine и подобных программ. |
участник
Сейчас нет на сайте
| Делаю мморпг. И тут возник вопрос защиты данных. С координатами и другими важными вещами все понятно - эти заправляет сервер. А вот что делать с другими переменными, которые хранятся у самого клиента, допустим, его никнейм. Вроде бы не важная переменная, но в то же время не хочется, чтобы клиент с помощью программы поменял свой ник(хоть и визуально), и передавать каждый раз вместе с координатами его тоже не хочется. Вообще пришла такая мысль все хранить в ds_map'е, но вот не знаю эффективно ли это. Что думаете? Вроде из ds_map'а ничего не вытащишь, хотя могу ошибаться(почему и спрашиваю). И еще один вопросик: что насчет спидхака? Эта функция встроена в cheat engine. Возьмем координаты. Если сделать ходьбу через сервер(что и есть правильно), то игрок ходить быстрее не будет(то есть визуально игра никак не изменится), но вот не будет ли этот спидхак плохо влиять на сервер, так как те же координаты будут передаваться не раз в секунду, а раз в 0,5 секунд, 0,75 секунд и т.д(в зависимости какое значение выставит человек)?
Сообщение отредактировал zzzzza - Пятница, 26 Февраля 2016, 10:47 |
|
| |
zzzzza | Дата: Суббота, 13 Февраля 2016, 17:43 | Сообщение # 15 | Тема: With. Other. |
участник
Сейчас нет на сайте
| YellowAfterlife, Ну я так и понял. Теперь понятно почему раньше не работало. Еще раз спасибо.
|
|
| |
zzzzza | Дата: Суббота, 13 Февраля 2016, 17:11 | Сообщение # 16 | Тема: With. Other. |
участник
Сейчас нет на сайте
| YellowAfterlife, По первому способу. other.id - это что ли id объекта, в котором этот код написан? Вот как до меня не дошло сделать вторым способом, я не понимаю :( Все работает, спасибо)
Сообщение отредактировал zzzzza - Суббота, 13 Февраля 2016, 17:11 |
|
| |
zzzzza | Дата: Суббота, 13 Февраля 2016, 16:56 | Сообщение # 17 | Тема: With. Other. |
участник
Сейчас нет на сайте
| Скорее всего глупый вопрос, но не понимаю, что не так делаю. Есть несколько объектов "obj_character". Каждый объект имеет переменную "flag". Мне надо, чтобы переменная "flag" стала равной false у всех, кроме объекта, в котором выполняется код. Тут возникла проблема: Если написать "other.flag=false", то значение этой переменной поменяется только у этого же объекта, то есть это то же самое, что написать "flag=false". Пробовал много всяких вариантов, и понял, что other работает, только если написать with (obj_character) {other.flag=false}, во всех остальных случаях other это то же самое, что и self. Ну этот вариант меня тоже не устраивает, так как сначала возьмется 1-ый объект и во всех остальных, кроме него flag будет равняться false. Потом 2-ой и произойдет то же самое(включая 1-ый). И т.д. А мне нужно, чтобы flag=false во всех, кроме того, в котором выполняется код. Думал создать глобальную переменную, в которой будет храниться id объекта, в котором код выполняется. И внутри with (obj_character) проверять на совместимость с этим id, но я думаю, что есть гораздо легче способ, либо я что-то не так делаю.
Добавлено (13 февраля 2016, 16:56) --------------------------------------------- Пока написал такой код:
Код i=0; j=instance_find(obj_button_character_class, i); while (j>0) { if (j!=id) { j.flag1=false; } i++; j=instance_find(obj_button_character_class, i); }
Но надеюсь, что кто-нибудь подскажет в чем ошибка с other.
Сообщение отредактировал zzzzza - Суббота, 13 Февраля 2016, 16:59 |
|
| |
zzzzza | Дата: Четверг, 04 Февраля 2016, 19:56 | Сообщение # 18 | Тема: Работа с файлами в GMS. |
участник
Сейчас нет на сайте
| Qvant, я думал об этом, но не захотел так делать, потому что обратиться к файлу гораздо легче, чем передать данные. Ну, скорее всего, я так и сделаю. Спасибо) OpenGOO, Этот вариант точно не для меня, но все равно спасибо за ответ.
|
|
| |
zzzzza | Дата: Четверг, 04 Февраля 2016, 09:37 | Сообщение # 19 | Тема: Работа с файлами в GMS. |
участник
Сейчас нет на сайте
| У меня есть два сервера: Первый основной(назовем его "server"), а второй игровой("gameServer"). Эти два сервера - это два разных проекта. Т.е. в папке "...\AppData\Local\" находится две папки: "...\AppData\Local\server" и "...\AppData\Local\gameServer". Я работаю с ini - файлами, но думаю, что эта проблема затрагивает все файлы. Допустим, сейчас мы работаем с "server". В "...\AppData\Local\server\"(рабочая папка) у нас находится файл(назовем его "optionsServer.ini"). Если я хочу работать с этим файлом, то я пишу: 1)ini_open('optionsServer.ini'); (так как этот файл находится в рабочей папке) 2)Или же ini_open(environment_get_variable('LOCALAPPDATA')+'\server\optionsServer.ini'); Но вот если я захочу создать файл/записать информацию в файл/прочитать из файла, находящегося в "...\AppData\Local\gameServer\" (То есть работать с файлом, который находится в папке другого сервера), то ничего не получится. То есть GMS дает работать с файлами только в своей рабочей папке. Кстати, новую папку функция (ini_open()) создает, а вот файл - нет. Также создавал exe'шный файл и пробовал запускать от имени администратора - толку ноль. Может быть он разрешит создать файл не на системном диске, но это мне не подходит, поэтому я даже не пробовал. Еще подумывал сменить рабочую папку на какую-нибудь другую, но все-таки надеюсь на то, что решение этой проблемы есть. Вообщем, как создавать файлы и работать с ними не в рабочей папке? Заранее спасибо)
|
|
| |
zzzzza | Дата: Суббота, 28 Ноября 2015, 00:08 | Сообщение # 20 | Тема: Две темы. |
участник
Сейчас нет на сайте
| XDominator, Fill_Freeman, YellowAfterlife, Всем спасибо: получил массу новых знаний:D Буду переходить на GMS.
|
|
| |
|