Example #1
0
inline void Clock::Update_Smooth()
{
	Update_Time();
	// 分単位の角度+秒単位の角度
	minuteAngle = (timeCount % MPH * ANGLE_1MINUTE) + (frameCount*(ANGLE_1MINUTE / (FPS / abs(speed))));
	// 時間単位+分単位+秒単位
	hourAngle = (timeCount / MPH * ANGLE_1HOUR) + (timeCount %MPH * (ANGLE_1HOUR / MPH)) + (frameCount*(ANGLE_1HOUR / MPH / (FPS / abs(speed))));
}
//	小さいサイズのロウソク動作
inline	 void	Candle::Update_Melt_Small( void )
{
	Update_Time();
	UpdateAnimation();

	melt += timeCount;

	if (melt > 1.0f)	melt = 0.0f;
	if (melt < 0.0f)	melt = 1.0f;
}
// {{{RME transition ':TOP:Initial:Initial'
INLINE_METHODS void Local_Controller_Actor::transition1_Initial( const void * rtdata, RTProtocol * rtport )
{
	// {{{USR
	Clear_Path_List();

	Elevator_Index = getIndex();

	RTTimespec Update_Time (0,500000000); //500 milliseconds
	Updater.informEvery (Update_Time);

	log.show("Elevator created with index: ");
	log.show(Elevator_Index);
	log.log("");
	// }}}USR
}
Example #4
0
void Clock::Update()
{
	switch(state)
	{
	case TimeObj::SUCCESS:
		SuccessCnt--;
		if (SuccessCnt < 0)SuccessCnt = 0;
		if (!Gold_Effect){
			Update_Time();
			minuteAngle = 0;
			hourAngle = 0;
			break;
		}
		case TimeObj::MOVE:
			switch(behavior)
			{
				case Behavior::SMOOTH:
					Update_Smooth();
					break;
				case Behavior::STEPING:
					Update_Steping();
					break;
				default:
					break;
			}
			break;
		case TimeObj::STOP:
			timeCount = frameCount = 0;
			// 分単位の角度+秒単位の角度
			minuteAngle = (timeCount % MPH * ANGLE_1MINUTE) + (frameCount*(ANGLE_1MINUTE / (FPS / abs(speed))));
			// 時間単位+分単位+秒単位
			hourAngle = (timeCount / MPH * ANGLE_1HOUR) + (timeCount %MPH * (ANGLE_1HOUR / MPH)) + (frameCount*(ANGLE_1HOUR / MPH / (FPS / abs(speed))));
			break;
		case TimeObj::CHECK:
			Update_Check();
			break;
		default:
			break;
	}
}
//	更新
void Candle::Update(void)
{
	switch (state)
	{
	case TimeObj::SUCCESS:
		SuccessCnt--;
		if (SuccessCnt < 0)SuccessCnt = 0;
		if (!Gold_Effect){
			Update_Time();
			fire_state = false;
			break;
		}
	case TimeObj::MOVE:
		fire_state = true;
		switch (behavior)
		{
		case Behavior::SMALL:
			Update_Melt_Small();
			break;
		case Behavior::BIG:
			Update_Melt_Big();
			break;
		default:

			break;
		}
		break;
	case TimeObj::STOP:
		timeCount = frameCount = 0;
		melt = 0.0f;
		break;
	case TimeObj::CHECK:
		Update_Check();
		break;
	default:
		break;
	}
}
Example #6
0
inline void Clock::Update_Steping()
{
	Update_Time();
	minuteAngle = timeCount % MPH * ANGLE_1MINUTE;
	hourAngle = (timeCount / MPH * ANGLE_1HOUR) + (timeCount % MPH * (ANGLE_1HOUR / MPH));
}