Esempio n. 1
0
void SpacePage::update()
{
    for (size_t i = 0; i < m_Bullets.size(); i++)
    {
        Bullet& b = m_Bullets.at(i);
        b.lifetime++;
        if (b.lifetime > 200)
        {
            m_Bullets[i] = m_Bullets.back();
            m_Bullets.pop_back();
            i--;
        }
    }
    
	Gosu::Input& i = PageManager::Instance()->input();

	if (i.down(m_kbSpinLeft)) {
		rotateDegrees(Vector::FORWARD, 1);
	} else if (i.down(m_kbSpinRight)) {
		rotateDegrees(Vector::FORWARD, -1);
	}
	double wdt = PageManager::Instance()->graphics().width();
	double hgt = PageManager::Instance()->graphics().height();
	double shiftx = double(i.mouseX())-double(wdt/2);
	double shifty = double(i.mouseY())-double(hgt/2);
	double mousespeed = 0.1;
	if (shiftx != 0) {
		rotateDegrees(Vector::UP, shiftx*mousespeed);
		i.setMousePosition(wdt/2, hgt/2);
	}
	if (shifty != 0) {
		if (m_bInvertMouse) {
			rotateDegrees(Vector::RIGHT, shifty*mousespeed);
		} else {
			rotateDegrees(Vector::RIGHT, -shifty*mousespeed);
		}
		i.setMousePosition(wdt/2, hgt/2);
	}
    
    if (!m_PlayerRenderable) return;
    
	Vector dir(0, 0, 0);
	if (i.down(m_kbForward)) {
		dir += Vector::FORWARD;
	} else if (i.down(m_kbBackward)) {
		dir -= Vector::FORWARD;
	}
	if (i.down(m_kbStrafeRight)) {
		dir -= Vector::RIGHT;
	} else if (i.down(m_kbStrafeLeft)) {
		dir += Vector::RIGHT;
	}
	if (i.down(m_kbStrafeUp)) {
		dir += Vector::UP;
	} else if (i.down(m_kbStrafeDown)) {
		dir -= Vector::UP;
	}
	double speed = 1.0;
	if (!i.down(m_kbTurbo)) {
		speed = 5.0;
	}
	if (dir.x != 0 || dir.y != 0 || dir.z != 0) {
		dir.normalize();
		m_PlayerRenderable->setPosition(m_PlayerRenderable->getPosition() + m_rotPlayer * dir * speed);
        PlayerPositionChanged();
	}
}
Esempio n. 2
0
task main()
{

	writeDebugStreamLine("initalizing");
	initializeRobot();
	writeDebugStreamLine("initalized");
	#ifdef COMPETITION
		waitForStart();
  #else
	while (nNxtButtonPressed != kEnterButton){}
	#endif
	rotateDegrees(45);
	while (nNxtButtonPressed != kRightButton){}
	rotateDegrees(45);
	while (nNxtButtonPressed != kRightButton){}


if (TestHook == 1) {
	setPosition(tas, POS_AT_60CM, DEFAULT_DISTANCE-1.5);
	while (nNxtButtonPressed != kRightButton){}
	hookGrab();
	wait1Msec(3000);
	moveInches(-20);
	hookUngrab();
	while (nNxtButtonPressed != kLeftButton){}
}
if (TestHardware == 1) {
		writeDebugStreamLine("Test Hardware");
	trapDoorOpen();
	trapDoorClose();
		servo[collector] = COLLECTOR_IDLE;
 	setPosition (tas, POS_BALL_COLLECTING, DEFAULT_DISTANCE);
wait10Msec(300);
		servo[collector] = COLLECTOR_IN;
wait10Msec(300);
		servo[collector] = COLLECTOR_IDLE;
	setPosition(tas, POS_AT_60CM, DEFAULT_DISTANCE-1.5);
  wait10Msec(1000);
	trapDoorOpen();
 wait10Msec(3000);
}
if (TestPositions == 1) {
		writeDebugStreamLine("Test Positions");
	//	while (nNxtButtonPressed != kRightButton){}
	//setPosition (tas, POS_DRIVE, DEFAULT_DISTANCE);
	//	while (nNxtButtonPressed != kLeftButton){}
 //	setPosition (tas, POS_AT_60CM, DEFAULT_DISTANCE);
	//	while (nNxtButtonPressed != kRightButton){}

		//Test 90
	//setPosition (tas, POS_DRIVE, DEFAULT_DISTANCE);
	//	while (nNxtButtonPressed != kLeftButton){}
 //	setPosition (tas, POS_AT_90CM, DEFAULT_DISTANCE);
	//	while (nNxtButtonPressed != kRightButton){}
	//		trapDoorOpen();
	//	while (nNxtButtonPressed != kEnterButton){}

			setPosition (tas, POS_DRIVE, DEFAULT_DISTANCE);
		while (nNxtButtonPressed != kLeftButton){}
 			setPosition (tas, POS_AT_120CM, DEFAULT_DISTANCE);
		while(nNxtButtonPressed != kEnterButton){}
			moveInches(24);
		while (nNxtButtonPressed != kRightButton){}
			trapDoorOpen();
		while(nNxtButtonPressed != kEnterButton){}
			moveInches(-24);
		while (nNxtButtonPressed != kLeftButton){}
	setPosition (tas, POS_DRIVE, DEFAULT_DISTANCE);

		while (nNxtButtonPressed != kEnterButton){}
 	setPosition (tas, POS_AT_120CM, DEFAULT_DISTANCE);
		while (nNxtButtonPressed != kRightButton){}
	setPosition (tas, POS_DRIVE, DEFAULT_DISTANCE);
		while (nNxtButtonPressed != kLeftButton){}
	setPosition (tas, POS_AT_90CM, DEFAULT_DISTANCE+3.5);
		while (nNxtButtonPressed != kRightButton){}
	setPosition (tas, POS_DRIVE, DEFAULT_DISTANCE);
		while (nNxtButtonPressed != kLeftButton){}
	setPosition (tas, POS_AT_120CM, DEFAULT_DISTANCE);
		while (nNxtButtonPressed != kRightButton){}
	trapDoorOpen();
		while (nNxtButtonPressed != kRightButton){}
	setPosition (tas, POS_AT_30CM, DEFAULT_DISTANCE);
		while (nNxtButtonPressed != kLeftButton){}
	//setPosition (tas, POS_DRIVE, DEFAULT_DISTANCE);
		//while (nNxtButtonPressed != kRightButton){}
	setPosition (tas, POS_AT_90CM, DEFAULT_DISTANCE);
		while (nNxtButtonPressed != kEnterButton){}
	setPosition (tas, POS_DRIVE, DEFAULT_DISTANCE);
		while (nNxtButtonPressed != kRightButton){}
	setPosition (tas, POS_AT_120CM, DEFAULT_DISTANCE);
		//while (nNxtButtonPressed != kLeftButton){}
	setPosition (tas, POS_DRIVE, DEFAULT_DISTANCE);
		while (nNxtButtonPressed != kEnterButton){}

}
#if 0
	setPosition (tas, POS_DRIVE, DEFAULT_DISTANCE);
	wait10Msec(200); //wait 2 sec for raise
	//moveInches(50);
	moveInches(54);
	setPosition(tas, POS_AT_60CM, DEFAULT_DISTANCE-1.5);
  wait10Msec(1000);
	//moveInches(14);
	moveInches(10);
	trapDoorOpen();
	wait10Msec(500);
	moveInches(-20);
	setPosition (tas, POS_DRIVE, DEFAULT_DISTANCE);
	wait10Msec(2000);
#endif
}
Esempio n. 3
0
void rotateWithOrientation(int degrees, byte power) {
	rotateDegrees(degrees, power);
	updateDirection(degrees * sgn(power));
}