Beispiel #1
0
void DataFieldFloat::Dec(void){
  // no keypad, allow user to scroll small values
  if(mFine && (mValue <= 1.0) && (mStep>=0.5) && (mMin>=0.0))
    {
      SetAsFloat(mValue - 0.1);
    }
  else
    SetAsFloat(mValue - mStep*SpeedUp(false));
}
Beispiel #2
0
void DataFieldFloat::Inc(void){
  // no keypad, allow user to scroll small values
  if(mFine && (mValue < 0.95) && (mStep>=0.5) && (mMin>=0.0))
    {
      SetAsFloat(mValue + 0.1);
    }
  else
    SetAsFloat(mValue + mStep*SpeedUp(true));
}
Beispiel #3
0
void
DataFieldFloat::Dec()
{
  // no keypad, allow user to scroll small values
  if (mFine && mValue <= fixed(1) && mStep >= fixed(0.5) &&
      mMin >= fixed(0))
    SetAsFloat(mValue - fixed(1) / 10);
  else
    SetAsFloat(fixed(mValue - mStep * SpeedUp(false)));
}
Beispiel #4
0
void
DataFieldFloat::Inc()
{
  // no keypad, allow user to scroll small values
  if (mFine && mValue < fixed(0.95) && mStep >= fixed(0.5) &&
      mMin >= fixed(0))
    SetAsFloat(mValue + fixed(1) / 10);
  else
    SetAsFloat(fixed(mValue + mStep * SpeedUp(true)));
}
Beispiel #5
0
void
DataFieldFloat::Dec(void)
{
  // no keypad, allow user to scroll small values
  if (mFine && mValue <= fixed_one && mStep >= fixed_half &&
      mMin >= fixed_zero)
    SetAsFloat(mValue - fixed_one / 10);
  else
    SetAsFloat(fixed(mValue - mStep * SpeedUp(false)));
}
Beispiel #6
0
// 游戏控制的一个主要流程。
// 当计时器发生时进行的处理逻辑。
void OnTimer(HWND hwnd)
{
	// 计时器到时以后,蛇移动一步。
	// 根据以后以后的状态,进行后续处理。
	switch (SnakeMove())
	{
	// 如果蛇已经死了
	case SNAKE_DEAD:
		// 首先关闭计时器,避免在计时器的驱动下再次调用本函数
		KillTimer(hwnd, TIMER_ID);
		// 然后通知玩家,Game Over了,退出进程。
		MessageBox(0, "Game Over", "Game Over", 0);
		ExitProcess(0);
		break;
	// 如果蛇吃到了食物
	case SNAKE_EATEN_FOOD:
		// 计分;
		score++;
		// 创建新的食物。食物是一个全局唯一变量。
		CreateFood();
		// 蛇进行生长,然后判断蛇生长以后的状态,进行后续处理。
		switch (SnakeGorwup())
		{
			// 玩家赢了,停止计时器。
		case SNAKE_COMPLETE:		
			KillTimer(hwnd, TIMER_ID);
			// 通知玩家,退出进程,结束游戏。
			MessageBox(0, "You Win!", "You Win", 0);
			ExitProcess(0);
			break;
			// 发生错误,停止计时器,并退出。
		case SNAKE_ERROR:
			KillTimer(hwnd, TIMER_ID);
			MessageBox(hwnd, "Error!!", "Error!1", MB_OK);
			ExitProcess(0);
			break;
			// 没有结束,也没有错误,正常吃到食物。
		case SNAKE_GROWUP:
			// 判断计分,是否升级。
			if (IS_SPEEDUP(score))
			{
				level++;
				SpeedUp(hwnd);
			}
			break;
		} //switch (SnakeGorwup()) 结束
		break;
	case SNAKE_MOVED:
		break;
	}
	return;

}
Beispiel #7
0
void Motor::speed_control(int step)
{
	if( step >= 0)
	{
		for(int i=0; i<step; i++)
			SpeedUp();
	}
	else
	{
		for(int i=0; i<abs(step); i++)
			SpeedDown();
	}
}
void Player::OnIdle(Vec3 ground, const std::vector<Vec3>& walls)
{
    SpeedUp(ground);
    //SlowDown();
    CollisionReduce(walls);
    if (_velocity.length() > 0.001)
    {
        Move();
        Look();
    }
    else if (_lookChanged)
    {
        Look();
        _lookChanged = false;
    }

}
Beispiel #9
0
	void Refresh(CBlock* block, CBlock* next){
		int tiem=SDL_GetTicks();
		if(!(done%15) && done!=0){SpeedUp();done++;}
		if(tiem-LastAction>1000/speed){
			if(!warning){
			LastAction=tiem;
			MoveBlockDown(block, 0);
		//block->tiletable[0][0]
			}else{
				for(int i=0; i<4; i++){
					for(int j=0; j<4; j++){
						if(block->tiletable[i][j]){
							GameTable[i+gameblockx][j+gameblocky]=new CTile;
							GameTable[i+gameblockx][j+gameblocky]->Set(250+30*(i+gameblockx), 30*(j+gameblocky));
						}
					}
				}
			gameblockx=3;
			gameblocky=-1;


			*block=*next;
			if(MoveBlockDown(block, 0)){gamestatus=4;}
			srand(time(NULL));
			switch(rand()%7){
					case 0: next->Set(0, -1, 0, 0, 0, 1, 0, 0, -1,179,206,221);break; //t
					case 1: next->Set(0, -1,-1,0,-1,0,0,1,0, 198,255,126);break; //z
					case 2: next->Set(0, -1,0,0,0,0,-1,1,-1, 126,196,255);break; //s
					case 3: next->Set(1, 0,0,1,0,0,1,1,1, 100, 100, 0);break; //o
					case 4: next->Set(0, 0,-1,0,0,0,1,0,2, 255,159,126);break; //i
					case 5: next->Set(0, -1,1,0,1,0,0,0,-1, 139,77,156);break; //j
					case 6: next->Set(0, 0,-1,0,0,0,1,1,1, 255,229,126);break; //l
			}

			warning=0;

			CheckTable();
			}
		}
	}
Beispiel #10
0
void
DataFieldInteger::Dec(void)
{
  SetAsInteger(mValue - mStep * SpeedUp(false));
}
Beispiel #11
0
void
DataFieldInteger::Inc(void)
{
  SetAsInteger(mValue + mStep * SpeedUp(true));
}
Beispiel #12
0
void
DataFieldTime::Dec()
{
  SetValue(value - step * SpeedUp(false));
}
Beispiel #13
0
void
DataFieldTime::Inc()
{
  SetValue(value + step * SpeedUp(true));
}
Beispiel #14
0
void
DataFieldInteger::Dec()
{
  SetAsInteger(value - step * SpeedUp(false));
}
Beispiel #15
0
void
DataFieldInteger::Inc()
{
  SetAsInteger(value + step * SpeedUp(true));
}