Game Maker - создание игр | HellRoom Games
Ноябрь 18, 2025, 04:48:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: 1 ... 11 12 [13] 14 15 16   Вниз
  Печать  
Автор Тема: Полезные скрипты  (Прочитано 380631 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Fur
Абы-какой
GM Pro user
*

Репутация: 463
Offline Offline

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [500 дней на форуме]Третье место на HellRoom Jam #9 [Flucoldache]За лояльность! [+300 репутации]Настоящий игродел!Боже мой, посмотрите на эту медальку! Первое место на HellRoom Jam #6
API: Game Maker 8.0 Lite
Деятельность: Бурная.
Сообщений: 3673


Лисяток тебе.


« Ответ #180 : Август 13, 2016, 19:43:19 »

Да вроде и так понятно.
Прочесть краткое описание функции так-то попроще, чем код, особенно с 14-ю аргументами.
Записан

В одной отдельно взятой фразе не должно быть больше миллиона муравьёв, пусть даже она — научного труда о муравьях.

Hyperflex
Goo
ну типа
GM Pro user
*

Репутация: 163
Offline Offline

Пол: Мужской
Награды:
3 место в HellRoom Jam XВторое место на HellRoom Jam #9 [Антибиотик]
API: GameMaker Studio 2
Деятельность: программист
Сообщений: 1345



« Ответ #181 : Август 13, 2016, 20:32:46 »

Цитировать
Прочесть краткое описание функции так-то попроще, чем код, особенно с 14-ю аргументами.
поправил (надеюсь описал понятно)
Записан

Anto96WS
Пользователь
***

Репутация: 6
Offline Offline

Пол: Мужской
API: GameMaker Studio Master
Деятельность: Разработчик ИИ
Сообщений: 59


Слаанешит и говнокодер


WWW
« Ответ #182 : Ноябрь 08, 2016, 19:55:52 »

isLetter(char) | Возвращает true если символ - буква
Код:
var temp;

temp =ord(argument0);
if((temp >64 && temp <91) || (temp >96 && temp <123) || (temp >191 && temp <256)){return true;}
return false;

isDigit(char) | Возвращает true если символ - цифра
Код:
var temp;

temp =ord(argument0);
if(temp >47 && temp< 58){return true;}
return false;

« Последнее редактирование: Ноябрь 17, 2016, 20:00:47 от Anto96WS » Записан

Fur
Абы-какой
GM Pro user
*

Репутация: 463
Offline Offline

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [500 дней на форуме]Третье место на HellRoom Jam #9 [Flucoldache]За лояльность! [+300 репутации]Настоящий игродел!Боже мой, посмотрите на эту медальку! Первое место на HellRoom Jam #6
API: Game Maker 8.0 Lite
Деятельность: Бурная.
Сообщений: 3673


Лисяток тебе.


« Ответ #183 : Ноябрь 08, 2016, 19:58:39 »

Кое-кто не знает про оператор ИЛИ.

Алсо,
Код:
temp=string_letters(argument0) //string_digits() for... um... digits.

return (temp!='')
Насчёт быстродействия, правда, не уверен.
Записан

В одной отдельно взятой фразе не должно быть больше миллиона муравьёв, пусть даже она — научного труда о муравьях.

Hyperflex
Anto96WS
Пользователь
***

Репутация: 6
Offline Offline

Пол: Мужской
API: GameMaker Studio Master
Деятельность: Разработчик ИИ
Сообщений: 59


Слаанешит и говнокодер


WWW
« Ответ #184 : Ноябрь 08, 2016, 20:02:12 »

Кое-кто не знает про оператор ИЛИ.

Однако знаю. С GM8 осталась привычка разбивать сложное условие на несколько простых.
Записан

Fur
Абы-какой
GM Pro user
*

Репутация: 463
Offline Offline

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [500 дней на форуме]Третье место на HellRoom Jam #9 [Flucoldache]За лояльность! [+300 репутации]Настоящий игродел!Боже мой, посмотрите на эту медальку! Первое место на HellRoom Jam #6
API: Game Maker 8.0 Lite
Деятельность: Бурная.
Сообщений: 3673


Лисяток тебе.


« Ответ #185 : Ноябрь 08, 2016, 20:05:01 »

Цитировать
Код:
if(temp >64 && temp <91 || temp >96 && temp <123 || temp >191 && temp <256){return true;}
А такое вообще работать не будет.
Записан

В одной отдельно взятой фразе не должно быть больше миллиона муравьёв, пусть даже она — научного труда о муравьях.

Hyperflex
Anto96WS
Пользователь
***

Репутация: 6
Offline Offline

Пол: Мужской
API: GameMaker Studio Master
Деятельность: Разработчик ИИ
Сообщений: 59


Слаанешит и говнокодер


WWW
« Ответ #186 : Ноябрь 08, 2016, 20:10:24 »

Цитировать
Код:
if(temp >64 && temp <91 || temp >96 && temp <123 || temp >191 && temp <256){return true;}
А такое вообще работать не будет.
И все-таки оно работает.
Записан

DmitryDS
Потому что я такой-сякой
GM Pro user
*

Репутация: 159
Offline Offline

Награды:
За лояльность! [+150 репутации]1000 сообщений!За постоянность! [100 дней на форуме]
API: GameMaker Studio Master
Сообщений: 1061



WWW
« Ответ #187 : Ноябрь 08, 2016, 20:18:19 »

Работать-то работает, а вот так ли оно работает, как должно? Скобок очсильно не хватает в выражении
Записан

Я никогда никого не пытаюсь оскорбить или обидеть, хотя порой веду себя вызывающе. Не обижайтесь, я не со зла
Anto96WS
Пользователь
***

Репутация: 6
Offline Offline

Пол: Мужской
API: GameMaker Studio Master
Деятельность: Разработчик ИИ
Сообщений: 59


Слаанешит и говнокодер


WWW
« Ответ #188 : Ноябрь 08, 2016, 20:21:49 »

Работать-то работает, а вот так ли оно работает, как должно? Скобок очсильно не хватает в выражении

Скорректировал. На проверке символов с клавиатуры вроде работало как надо.

Добавлено: Ноябрь 08, 2016, 21:05:47
Система сообщений с выводом и плавным исчезновением.
Для создания подойдут два любых пустых списка.

« Последнее редактирование: Ноябрь 08, 2016, 21:05:47 от Anto96WS » Записан

Christopher
mgflernGD
GM Pro user
*

Репутация: 99
Offline Offline

Пол: Мужской
Награды:
3 место в HellRoom Jam XВторое место на HellRoom Jam #9 [Антибиотик]500 сообщений!За постоянность! [10 дней на форуме]
API: Game Maker 7.0 Pro
Деятельность: Инди-разработчик
Сообщений: 713


DragonGameStudios


WWW
« Ответ #189 : Ноябрь 16, 2016, 01:52:24 »

Простенько, но полезно, в очередной раз, лично я уже не впервые им пользуюсь и писал чисто ради экономии времени

То же самое, только в профиль, вызывает деактивацию всех обьектов, кроме того, в котором был скрипт запущен
Записан
Goo
ну типа
GM Pro user
*

Репутация: 163
Offline Offline

Пол: Мужской
Награды:
3 место в HellRoom Jam XВторое место на HellRoom Jam #9 [Антибиотик]
API: GameMaker Studio 2
Деятельность: программист
Сообщений: 1345



« Ответ #190 : Ноябрь 16, 2016, 14:33:53 »

Этот скрипт уже был, я просто свою вариацию предложу


ну и еще

« Последнее редактирование: Апрель 12, 2017, 18:46:56 от Goo » Записан

Fur
Абы-какой
GM Pro user
*

Репутация: 463
Offline Offline

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [500 дней на форуме]Третье место на HellRoom Jam #9 [Flucoldache]За лояльность! [+300 репутации]Настоящий игродел!Боже мой, посмотрите на эту медальку! Первое место на HellRoom Jam #6
API: Game Maker 8.0 Lite
Деятельность: Бурная.
Сообщений: 3673


Лисяток тебе.


« Ответ #191 : Январь 14, 2017, 18:43:48 »

Плавное движение с целыми координатами при нецелых скоростях.
Простой приём, который придаёт плавности движениям, при этом сохраняя координаты объекта целочисленными. Никто не любит дробные координаты.
Суть заключается в том, чтобы завести каждой координате по дополнительной переменной x_f и y_f, которые будут хранить дробную часть переменной. Когда в них накапливается 1 или -1, они передают эту единицу координате.

Код:
///moveSmooth_x()

x+=  hspd div 1 //Двигаем объект с какой-то скоростью, предварительно лишив её дробной части.
x_f+=hspd mod 1 //Сохраняем дробную часть в переменную.
if abs(x_f)>=1
{
  var x_f_s=sign(x_f);
  x+=x_f_s //Прибавляем единицу, накопившуюся в дробной части.
  x_f-=x_f_s //И отнимаем её от самой дробной переменной.
}
Записан

В одной отдельно взятой фразе не должно быть больше миллиона муравьёв, пусть даже она — научного труда о муравьях.

Hyperflex
DmitryDS
Потому что я такой-сякой
GM Pro user
*

Репутация: 159
Offline Offline

Награды:
За лояльность! [+150 репутации]1000 сообщений!За постоянность! [100 дней на форуме]
API: GameMaker Studio Master
Сообщений: 1061



WWW
« Ответ #192 : Январь 14, 2017, 20:05:18 »

Код:
x+=  hspd div 1 //Двигаем объект с какой-то скоростью, предварительно лишив её дробной части.
x_f+=hspd mod 1 //Сохраняем дробную часть в переменную.

floor() и frac() не проще?
Записан

Я никогда никого не пытаюсь оскорбить или обидеть, хотя порой веду себя вызывающе. Не обижайтесь, я не со зла
Fur
Абы-какой
GM Pro user
*

Репутация: 463
Offline Offline

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [500 дней на форуме]Третье место на HellRoom Jam #9 [Flucoldache]За лояльность! [+300 репутации]Настоящий игродел!Боже мой, посмотрите на эту медальку! Первое место на HellRoom Jam #6
API: Game Maker 8.0 Lite
Деятельность: Бурная.
Сообщений: 3673


Лисяток тебе.


« Ответ #193 : Январь 14, 2017, 20:40:57 »

Код:
x+=  hspd div 1 //Двигаем объект с какой-то скоростью, предварительно лишив её дробной части.
x_f+=hspd mod 1 //Сохраняем дробную часть в переменную.

floor() и frac() не проще?
Во-первых, функции медленнее операторов. Во-вторых, тот же floor не работает так же, как и div.
Пример:
floor(-3.4)=-4
-3.4 div 1 = -3
Надо именно отбрасывать дробную часть, а не округлять.
Записан

В одной отдельно взятой фразе не должно быть больше миллиона муравьёв, пусть даже она — научного труда о муравьях.

Hyperflex
DmitryDS
Потому что я такой-сякой
GM Pro user
*

Репутация: 159
Offline Offline

Награды:
За лояльность! [+150 репутации]1000 сообщений!За постоянность! [100 дней на форуме]
API: GameMaker Studio Master
Сообщений: 1061



WWW
« Ответ #194 : Январь 14, 2017, 20:51:17 »

Ну да, с floor() я погорячился (хотя уверен, что видел функцию, отрывающую именно целую часть. Странно, что не могу ее найти).
Тут в основном читаемость повышается - не надо объяснять, зачем мы это делаем, поскольку функция говорит сама за себя.
Записан

Я никогда никого не пытаюсь оскорбить или обидеть, хотя порой веду себя вызывающе. Не обижайтесь, я не со зла
Страниц: 1 ... 11 12 [13] 14 15 16   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.124 секунд. Запросов: 31.