Bitmap::Bitmap(int width, int height, int bpp) { _width = width; _height = height; _bpp = bpp; _data = new UINT8[width*height*bpp/8]; clear(); setNoClip(); }
//=================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); }
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); } } }