Считайте вверх и вниз элегантно - PullRequest
2 голосов
/ 21 сентября 2009

Я пытаюсь создать мигающий объект, то есть увеличить его альфа-значение с 0 до 255 (постепенно), а затем вернуться к 0 и повторить.

Есть ли способ сделать это без использования логического значения? Получить его на прирост легко:

alpha = time.elapsed()%256;

Но какой хороший способ заставить его снова вести обратный отсчет?

Ответы [ 3 ]

15 голосов
/ 21 сентября 2009

Как насчет использования функции sin, так что затухание будет более приятным, и вы получите то, что хотите.

14 голосов
/ 21 сентября 2009

Может быть, вы могли бы сделать это так:

alpha = abs((time.elapsed() % 510) - 254);
5 голосов
/ 21 сентября 2009

abs (((x + 255)% 510) - 255) будет линейно переходить от 0 до 255 для x между 0 и 255 и линейно от 255 до 0 для x между 255 и 510. Затем он повторяется (с периодом 510 конечно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...