HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 25.09.2018, 09:45
rraggerr
Познавший АНТИЧАТ
Регистрация: 16.03.2017
Сообщений: 1,626
С нами: 4821087

Репутация: 133


По умолчанию

Добавляете в любое место в вашем коде

C++:





Код:
static
void
Pulsate
(
float
&
clr
,
float
min
,
float
max
,
float
pulsate_speed
)
{
static
bool
state
=
false
;
if
(
!
state
)
{
if
(
clr

min
)
clr
-=
pulsate_speed
;
else
{
clr
=
min
;
state
=
!
state
;
}
;
}
;
}
;


и используете так:

C++:





Код:
static
float
PlusateBlue
=
255.0f
;
/*Color:: - это если пихаете в класс Color как и я */
Pulsate
(
PlusateBlue
/* переменная */
,
100.f
/*минимальное*/
,
255.f
/*максимальное значение*/
,
1.f
/*скорость*/
)
;


Вот как это выглядит на примере ImGui (лок на фпс включен)

p.s это самый простой метод пульсации, можно сделать лучше через HSB
 
Ответить с цитированием

  #2  
Старый 25.09.2018, 10:22
zeel228
Новичок
Регистрация: 20.07.2018
Сообщений: 6
С нами: 4114012

Репутация: 1
По умолчанию

Что происходит в видео, кто объяснит?
 
Ответить с цитированием

  #3  
Старый 25.09.2018, 10:24
rraggerr
Познавший АНТИЧАТ
Регистрация: 16.03.2017
Сообщений: 1,626
С нами: 4821087

Репутация: 133


По умолчанию

Цитата:
Сообщение от zeel228  

Что происходит в видео, кто объяснит?
:facepalm2::facepalm2::facepalm2::facepalm2:

Пульсация цвета C++

честно хз что там может происходить...
 
Ответить с цитированием

  #4  
Старый 25.09.2018, 11:02
#Rin
Познавший АНТИЧАТ
Регистрация: 09.08.2015
Сообщений: 1,213
С нами: 5663255

Репутация: 183


По умолчанию

Цитата:
Сообщение от rraggerr  

Добавляете в любое место в вашем
Добавишь в конец файла, и использовать функцию выше нельзя будет, не объявив.
 
Ответить с цитированием

  #5  
Старый 25.09.2018, 19:54
Oreshka23
Постоянный
Регистрация: 10.05.2015
Сообщений: 341
С нами: 5794960

Репутация: 98
По умолчанию

Цитата:
Сообщение от zeel228  

Что происходит в видео, кто объяснит?
С третьего раза понял, что облачко становится то фиолетовым, то синим
 
Ответить с цитированием

  #6  
Старый 25.09.2018, 20:17
rraggerr
Познавший АНТИЧАТ
Регистрация: 16.03.2017
Сообщений: 1,626
С нами: 4821087

Репутация: 133


По умолчанию

Цитата:
Сообщение от Oreshka23  

С третьего раза понял, что облачко становится то фиолетовым, то синим
не фиолетовым а черным, я не указывал ни зеленый ни красный цвет, ток синий
 
Ответить с цитированием

  #7  
Старый 28.09.2018, 15:56
iAmerican
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами: 6438231

Репутация: 133


По умолчанию

Более точно будет сказать переливание цвета, пульсация эт другое.
 
Ответить с цитированием

  #8  
Старый 02.10.2018, 21:48
deropleat
Участник форума
Регистрация: 16.03.2017
Сообщений: 105
С нами: 4821087

Репутация: 133
По умолчанию

Цитата:
Сообщение от rraggerr  

:facepalm2:
Я все понимаю что тебя это не волнует, но извини, это полнейший бред, а не код.

Тебе достаточно допустим:

C++:





Код:
bool
mState
=
false
;
mState
?
(
mColor
+=
fSpeed
)
:
(
mColor
-=
fSpeed
)
;
if
(
mColor
==
cMax
||
mColor
==
cMin
)
mState
=
!
mState
;
 
Ответить с цитированием

  #9  
Старый 18.10.2018, 05:07
LUCHARE
Постоянный
Регистрация: 23.05.2017
Сообщений: 545
С нами: 4723927

Репутация: 158


По умолчанию

Цитата:
Сообщение от rraggerr  

сейчас разве не 2018?
в том высказывании ошибка в другом месте
 
Ответить с цитированием

  #10  
Старый 30.12.2018, 16:50
Losyash1337
Новичок
Регистрация: 03.01.2017
Сообщений: 16
С нами: 4925302

Репутация: 0
По умолчанию

Цитата:
Сообщение от DucaRii  

Я все понимаю что тебя это не волнует, но извини, это полнейший бред, а не код.
Тебе достаточно допустим:

C++:





Код:
bool
mState
=
false
;
mState
?
(
mColor
+=
fSpeed
)
:
(
mColor
-=
fSpeed
)
;
if
(
mColor
==
cMax
||
mColor
==
cMin
)
mState
=
!
mState
;

А потом жалуются люди, что у них не работает ничего

У float всегда погрешность будет в этом случае (и почти во всех остальных), если не можете осознать этот факт, то прошу уйти читать IEEE 754 (перевод). Кстати, реализация не самая длинная, как может показаться, вот, например, другая, более универсальная (и прожорливая):

C++:





Код:
#include 
#include 
#include 
// ...
struct
ColorState
{
uint8_t
r
,
g
,
b
;
double
duration
;
ColorState
(
)
{
}
ColorState
(
uint8_t
r
,
uint8_t
g
,
uint8_t
b
,
double
duration
)
:
r
(
r
)
,
g
(
g
)
,
b
(
b
)
,
duration
(
duration
)
{
assert
(
duration
>
0.0
)
;
}
}
;
class
ColorController
{
public
:
ColorController
(
const
std
::
vector

&
data
)
:
m_data
(
data
)
,
m_state
(
0U
)
,
m_time
(
0.0
)
,
m_cycle
(
0.0
)
{
for
(
const
auto
&
x
:
m_data
)
m_cycle
+=
x
.
duration
;
}
void
update
(
double
delta
)
{
m_time
+=
delta
;
#define _CC_NEXT_STATE(x) (((x)+1U)%m_data.size())
while
(
m_time
>=
m_data
[
m_state
]
.
duration
)
{
m_time
-=
m_data
[
m_state
]
.
duration
;
m_state
=
_CC_NEXT_STATE
(
m_state
)
;
}
const
auto
&
cur
=
m_data
[
m_state
]
;
const
auto
&
nxt
=
m_data
[
_CC_NEXT_STATE
(
m_state
)
]
;
const
double
t1
=
m_time
,
t2
=
cur
.
duration
-
m_time
;
#undef _CC_NEXT_STATE
m_r
=
static_cast

(
(
t2
*
cur
.
r
+
t1
*
nxt
.
r
)
/
cur
.
duration
)
;
m_g
=
static_cast

(
(
t2
*
cur
.
g
+
t1
*
nxt
.
g
)
/
cur
.
duration
)
;
m_b
=
static_cast

(
(
t2
*
cur
.
b
+
t1
*
nxt
.
b
)
/
cur
.
duration
)
;
}
uint8_t
get_r
(
)
const
{
return
m_r
;
}
uint8_t
get_g
(
)
const
{
return
m_g
;
}
uint8_t
get_b
(
)
const
{
return
m_b
;
}
COLORREF
get_color
(
)
const
{
return
RGB
(
m_r
,
m_g
,
m_b
)
;
}
private
:
size_t m_state
;
double
m_time
,
m_cycle
;
uint8_t
m_r
,
m_g
,
m_b
;
std
::
vector

m_data
;
}
;


использование:

C++:





Код:
// инициализация в отдельной функции (чтобы не засорять код в месте использования)
ColorController
create_my_cc
(
)
{
std
::
vector

data
(
6
)
;
data
[
0
]
=
ColorState
(
255
,
0
,
0
,
0.5
)
;
data
[
1
]
=
ColorState
(
0
,
0
,
0
,
0.3
)
;
data
[
2
]
=
ColorState
(
0
,
255
,
0
,
0.5
)
;
data
[
3
]
=
ColorState
(
0
,
0
,
0
,
0.3
)
;
data
[
4
]
=
ColorState
(
0
,
0
,
255
,
0.5
)
;
data
[
5
]
=
ColorState
(
0
,
0
,
0
,
0.3
)
;
return
ColorController
(
data
)
;
}
// инициализация на месте (производится один раз!)
auto
my_cc
=
create_my_cc
(
)
;
// использование
my_cc
.
update
(
dt
)
;
COLORREF color
=
my_cc
.
get_color
(
)
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору. Комиссия форума: 2%.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...
×

ESCROW ADMIN PANEL

Загрузка...
Загрузка...