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)); }
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)); }
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))); }
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))); }
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))); }
// 游戏控制的一个主要流程。 // 当计时器发生时进行的处理逻辑。 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; }
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; } }
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(); } } }
void DataFieldInteger::Dec(void) { SetAsInteger(mValue - mStep * SpeedUp(false)); }
void DataFieldInteger::Inc(void) { SetAsInteger(mValue + mStep * SpeedUp(true)); }
void DataFieldTime::Dec() { SetValue(value - step * SpeedUp(false)); }
void DataFieldTime::Inc() { SetValue(value + step * SpeedUp(true)); }
void DataFieldInteger::Dec() { SetAsInteger(value - step * SpeedUp(false)); }
void DataFieldInteger::Inc() { SetAsInteger(value + step * SpeedUp(true)); }