Skip to content

Instantly share code, notes, and snippets.

Created January 24, 2017 02:02
Show Gist options
  • Save anonymous/fbb044de487b17ab8ac2fe43aa3bf9ce to your computer and use it in GitHub Desktop.
Save anonymous/fbb044de487b17ab8ac2fe43aa3bf9ce to your computer and use it in GitHub Desktop.
#include "Game.h"
#define C_SPEED 0.5f
#define friction 0.75f
#define SCREEN_WIDTH 800
#define SCREEN_HEIGHT 600
#define Speed 10.0f
Game::Game(int argc, char* argv[])
{
gameWindow = new RenderWindow(VideoMode(SCREEN_WIDTH, SCREEN_HEIGHT ), "THING");
gameWindow->setFramerateLimit(60);
Clock clock;
direction = 0;
//physics
LoadContent();
while (gameWindow->isOpen())
{
// check all the window's events that were triggered since the last iteration of the loop
sf::Event event;
while (gameWindow->pollEvent(event))
{
// "close requested" event: we close the window
if (event.type == sf::Event::Closed)
gameWindow->close();
}
Update(clock.restart().asMilliseconds());
Draw();
}
}
Game::~Game()
{
}
void Game::CheckViewPortCollision(int elapsedTime)
{
/*maxSpeed = 8.0f;
velocity = maxSpeed;
velocity *= 0.001f;*/
//if bounds our greater than screen width push in different dirrection
if (sprite->getPosition().x + sprite->getLocalBounds().width > SCREEN_WIDTH)
{
sprite->setPosition(sprite->getPosition().x - C_SPEED* elapsedTime, sprite->getPosition().y);
//velocity *= 0.95f;
}
if (sprite->getPosition().x - sprite->getLocalBounds().left < 0)
{
sprite->setPosition(sprite->getPosition().x + C_SPEED * elapsedTime, sprite->getPosition().y);
}
if (sprite->getPosition().y - sprite->getLocalBounds().top < 0)
{
sprite->setPosition(sprite->getPosition().x, sprite->getPosition().y + C_SPEED * elapsedTime);
}
if (sprite->getPosition().y + sprite->getLocalBounds().height > SCREEN_HEIGHT)
{
sprite->setPosition(sprite->getPosition().x, sprite->getPosition().y - C_SPEED * elapsedTime);
}
}
void Game::LoadContent()
{
//Load all your shit
sprite = new Sprite();
sprite->setTextureRect(sf::IntRect(0, 0, 32 ,32));
sprite->setPosition(sf::Vector2f(5, 10));
texture = new Texture();
texture->loadFromFile("Texture/Pacman.tga");
sprite->setTexture(*texture);
sprite->setPosition(150.f, 150.f);
}
void Game::Update(int elapsedTime)
{
//Update all your shit
speed = 0.75f;
AddingSpeed = 0.25f;
if (speed < 1.5f)
{
maxSpeed = speed += AddingSpeed;
}
float x = sprite->getPosition().x;
float y = sprite->getPosition().y;
x += velocity_x;
y += velocity_y;
velocity_x += acceleration_x;
velocity_y += acceleration_y;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::D))
{
//This moves the sprite to the right
sprite->setPosition(sprite->getPosition().x + acceleration_x * elapsedTime, sprite->getPosition().y);
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::A))
{
sprite->setPosition(sprite->getPosition().x - C_SPEED * elapsedTime, sprite->getPosition().y);
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::W))
{
sprite->setPosition(sprite->getPosition().x, sprite->getPosition().y - C_SPEED * elapsedTime);
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::S))
{
sprite->setPosition(sprite->getPosition().x, sprite->getPosition().y + C_SPEED * elapsedTime);
}
CheckViewPortCollision(elapsedTime);
}
void Game::Draw()
{
//Draw all your shit
gameWindow->clear(Color::Black);
//RectangleShape rect = RectangleShape(Vector2f(150.0f, 150.0f));
//rect.setFillColor(Color::Red);
//rect.setPosition(Vector2f(200.0f, 200.0f));
gameWindow->draw(*sprite);
gameWindow->display();
}
#pragma once
#include "SFML\Graphics.hpp"
#include "SFML\Window.hpp"
#include "SFML\System.hpp"
using namespace sf;
class Game
{
private:
RenderWindow* gameWindow;
public:
Game(int argc, char* argv[]);
~Game();
sf::Sprite* sprite;
sf::Texture* texture;
int direction;
float speed;
float velocity;
float AddingSpeed;
float maxSpeed;
float velocity_x;
float velocity_y;
float acceleration_x = 0.75f;
float acceleration_y = 0.75f;
bool locationAllowed(sf::Sprite sprite);
void CheckViewPortCollision(int elapsedTime);
void LoadContent();
void Update(int elapsedTime);
void Draw();
};
#include "Game.h"
using namespace sf;
int main(int argc, char* argv[])
{
Game* newGame = new Game(argc, argv);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment