Game Maker - создание игр | HellRoom Games
Март 24, 2025, 03:43:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: friction  (Прочитано 6611 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Krib
«Старожил форума»
******

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

Пол: Мужской
Награды:
500 сообщений!За постоянность! [10 дней на форуме]Знаток Game MakerЗа помощь новичкам!
API: Game Maker 8.0 Pro
Сообщений: 951


« : Ноябрь 30, 2011, 19:28:48 »

Есть ли тут подобие функции friction или придется самому додумывать?
Записан

Fuge, late, tace
Dmi7ry
Гл. Администратор
*

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

Пол: Мужской
Награды:
5000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+1000 репутации]За помощь в развитии форума!Знаток Game Maker!За помощь новичкам!
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 6626



WWW
« Ответ #1 : Ноябрь 30, 2011, 19:38:19 »

Зачем тут функция? Просто переменная. Каждый шаг вычитать из скорости значение...
Записан

- А какой, собственно, командой процессора колобок ест черта?
- Командой EAT...
Справка и FAQ в правом верхнем углу...
Krib
«Старожил форума»
******

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

Пол: Мужской
Награды:
500 сообщений!За постоянность! [10 дней на форуме]Знаток Game MakerЗа помощь новичкам!
API: Game Maker 8.0 Pro
Сообщений: 951


« Ответ #2 : Ноябрь 30, 2011, 19:41:20 »

Так-то так, но она в ГМ очень удобно сделана, к примеру скорость 0.5, трение 1, скорость станет 0, аналогично для отрицательных. Так же думаю это будет быстрее работать, чем прописанные проверки... так как идеального кода для этого не знаю
Ответ в виде кода тоже устроит ;D

Добавлено: Ноябрь 30, 2011, 20:05:28
Мой вариант:
Код:
if(abs(speed)<friction){speed=0;}
else{if(speed<0){speed=speed+friction;}else{speed=speed-friction;}}

Есть варианты лучше?
Попутный вопрос в тулулу работают такие присваивания: +=  -=?
Записан

Fuge, late, tace
Dva_Kota
Гл. Администратор
*

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

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [500 дней на форуме]За лояльность! [+500 репутации]Настоящий игродел!Тру Админ :D1 место за игру: Energy Wars (Конкурс Золотые Руки)...
API: GameMaker Studio Standard
Сообщений: 3245



« Ответ #3 : Ноябрь 30, 2011, 20:24:02 »

+= и -= работают
Записан

Dmi7ry
Гл. Администратор
*

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

Пол: Мужской
Награды:
5000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+1000 репутации]За помощь в развитии форума!Знаток Game Maker!За помощь новичкам!
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 6626



WWW
« Ответ #4 : Ноябрь 30, 2011, 20:41:57 »

Есть варианты лучше?
первое, что приходит в голову:
Код:
speed-=sign(speed)*friction
Записан

- А какой, собственно, командой процессора колобок ест черта?
- Командой EAT...
Справка и FAQ в правом верхнем углу...
Fantom
I am... All of me
Гл. Администратор
*

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

Пол: Мужской
Награды:
5000 сообщений!За постоянность! [500 дней на форуме]За лояльность! [+1000 репутации]За отличные статьи по Game Maker!Тру Админ :DЗнаток Game Maker...
API: GameMaker Studio Master
Сообщений: 5026



« Ответ #5 : Ноябрь 30, 2011, 20:45:12 »

Код:
if abs(speed)>0 //можно и без проверки
speed=sign(speed)*max(0,abs(speed)-friction);
За отсутствие каких-то функций не отвечаю.

PS: friction - переменная.
Записан

Krib
«Старожил форума»
******

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

Пол: Мужской
Награды:
500 сообщений!За постоянность! [10 дней на форуме]Знаток Game MakerЗа помощь новичкам!
API: Game Maker 8.0 Pro
Сообщений: 951


« Ответ #6 : Ноябрь 30, 2011, 20:45:27 »

Точно, спасибо, но первую проверку все же придется оставить(if(abs(speed)<friction){speed=0;})?

Добавлено: Ноябрь 30, 2011, 20:47:46
FanTom, то что надо, спасибо, сигна тут есть и max тоже
Записан

Fuge, late, tace
Dmi7ry
Гл. Администратор
*

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

Пол: Мужской
Награды:
5000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+1000 репутации]За помощь в развитии форума!Знаток Game Maker!За помощь новичкам!
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 6626



WWW
« Ответ #7 : Ноябрь 30, 2011, 20:51:05 »

Точно, спасибо, но первую проверку все же придется оставить(if(abs(speed)<friction){speed=0;})?
да, конечно.
Записан

- А какой, собственно, командой процессора колобок ест черта?
- Командой EAT...
Справка и FAQ в правом верхнем углу...
Krib
«Старожил форума»
******

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

Пол: Мужской
Награды:
500 сообщений!За постоянность! [10 дней на форуме]Знаток Game MakerЗа помощь новичкам!
API: Game Maker 8.0 Pro
Сообщений: 951


« Ответ #8 : Ноябрь 30, 2011, 20:56:19 »

Теперь вот думаю, какой код более ресурсоемок, в плане оптимизации я не очень разбираюсь...
Код:
speed=sign(speed)*max(0,abs(speed)-friction);
тут операция max
Код:
(if(abs(speed)<friction){speed=0;}else{speed-=sign(speed)*friction;}
а тут одно полное условие
Записан

Fuge, late, tace
Dmi7ry
Гл. Администратор
*

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

Пол: Мужской
Награды:
5000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+1000 репутации]За помощь в развитии форума!Знаток Game Maker!За помощь новичкам!
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 6626



WWW
« Ответ #9 : Ноябрь 30, 2011, 21:13:30 »

разница незначительна.
А первый вариант мне нравится больше.
Записан

- А какой, собственно, командой процессора колобок ест черта?
- Командой EAT...
Справка и FAQ в правом верхнем углу...
YellowAfterlife
Videogames, I'm afraid
Главный Модератор
*

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

Пол: Мужской
Награды:
Добавление и перевод новостей о Game Maker!500 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+300 репутации]Настоящий игродел!Знаток Game Maker!...
API: GameMaker Studio 2
Сообщений: 731



WWW
« Ответ #10 : Ноябрь 30, 2011, 21:23:49 »

Расширение Motion специально содержит функцию motion_slow(friction) для имитации переменной friction.
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

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