Exemplo n.º 1
0
Bitmap::Bitmap(int width, int height, int bpp)
{
	_width = width;
	_height = height;
	_bpp = bpp;

	_data = new UINT8[width*height*bpp/8];

	clear();
	setNoClip();
}
Exemplo n.º 2
0
//=================GameObject===============
GameObject::GameObject( InputComponent* input, 
						PhysicsComponent* physics,
						GraphicsComponent* graphics,
						CombatComponent* combat,
						SocialComponent* social )
:mInput(input),
mPhysics(physics),
mGraphics(graphics),
mCombat(combat),
mSocial(social) {

	setNoClip(false);

}
Exemplo n.º 3
0
void SceneObjectPlayer::update(float dt) {
	pge::SceneObjectBufferedInput* pBufferedInput = static_cast<pge::SceneObjectBufferedInput*>(_input.get());

	if (pBufferedInput->isKeyPressed(sf::Keyboard::Escape)) {
		_acceptingInput = !_acceptingInput;
		
		if (_acceptingInput) {
			_lastMousePosition = sf::Mouse::getPosition(*getRenderScene()->getRenderWindow());

			sf::Mouse::setPosition(sf::Vector2i(128, 128), *getRenderScene()->getRenderWindow());
		}
		else
			sf::Mouse::setPosition(_lastMousePosition, *getRenderScene()->getRenderWindow());
	}

	if (_acceptingInput) {
		sf::Vector2i mousePosition = sf::Mouse::getPosition(*getRenderScene()->getRenderWindow()) - sf::Vector2i(128, 128);
		sf::Mouse::setPosition(sf::Vector2i(128, 128), *getRenderScene()->getRenderWindow());
		
		_angleX -= mousePosition.x * _sensitivity;
		_angleY -= mousePosition.y * _sensitivity;

		_angleX = std::fmodf(_angleX, pge::_piTimes2);

		if (_angleY < -pge::_piOver2)
			_angleY = -pge::_piOver2;
		else if (_angleY > pge::_piOver2)
			_angleY = pge::_piOver2;

		getRenderScene()->_logicCamera._rotation = pge::Quaternion(_angleX, pge::Vec3f(0.0f, 1.0f, 0.0f)) * pge::Quaternion(_angleY, pge::Vec3f(1.0f, 0.0f, 0.0f));

		if (_allowNoclipChange)
		if (pBufferedInput->isKeyPressed(sf::Keyboard::N))
			setNoClip(_characterController != nullptr);

		if (_characterController == nullptr) {
			float accel = sf::Keyboard::isKeyPressed(sf::Keyboard::LShift) ? _noClipAcceleration * _noClipRunMultiplier : _noClipAcceleration;

			if (sf::Keyboard::isKeyPressed(sf::Keyboard::W))
				_noClipVelocity += getRenderScene()->_logicCamera._rotation * pge::Vec3f(0.0f, 0.0f, -accel * dt);
			else if (sf::Keyboard::isKeyPressed(sf::Keyboard::S))
				_noClipVelocity += getRenderScene()->_logicCamera._rotation * pge::Vec3f(0.0f, 0.0f, accel * dt);

			if (sf::Keyboard::isKeyPressed(sf::Keyboard::D))
				_noClipVelocity += getRenderScene()->_logicCamera._rotation * pge::Vec3f(accel * dt, 0.0f, 0.0f);
			else if (sf::Keyboard::isKeyPressed(sf::Keyboard::A))
				_noClipVelocity += getRenderScene()->_logicCamera._rotation * pge::Vec3f(-accel * dt, 0.0f, 0.0f);

			_noClipVelocity += -_noClipDeceleration * _noClipVelocity * dt;

			getRenderScene()->_logicCamera._position += _noClipVelocity * dt;
		}
		else {
			float accel = sf::Keyboard::isKeyPressed(sf::Keyboard::LShift) ? _acceleration * _runMultiplier : _acceleration;

			if (sf::Keyboard::isKeyPressed(sf::Keyboard::W))
				_characterController->walk(getRenderScene()->_logicCamera._rotation * pge::Vec3f(0.0f, 0.0f, -accel * dt));
			else if (sf::Keyboard::isKeyPressed(sf::Keyboard::S))
				_characterController->walk(getRenderScene()->_logicCamera._rotation * pge::Vec3f(0.0f, 0.0f, accel * dt));

			if (sf::Keyboard::isKeyPressed(sf::Keyboard::D))
				_characterController->walk(getRenderScene()->_logicCamera._rotation * pge::Vec3f(accel * dt, 0.0f, 0.0f));
			else if (sf::Keyboard::isKeyPressed(sf::Keyboard::A))
				_characterController->walk(getRenderScene()->_logicCamera._rotation * pge::Vec3f(-accel * dt, 0.0f, 0.0f));

			if (sf::Keyboard::isKeyPressed(sf::Keyboard::Space))
				_characterController->jump();

			_characterController->_deceleration = _deceleration;

			_characterController->update(dt);

			getRenderScene()->_logicCamera._position = _characterController->getPosition() + pge::Vec3f(0.0f, _cameraHeightOffset, 0.0f);
		}
	}
}