A repository that sets up a C++ Project with the olcPixelGameEngine already loaded.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
3.0 KiB

//--------------------------------------------------------------------------------------------------
// Collect the Balls Game
//--------------------------------------------------------------------------------------------------
// Purpose of the game is to figure out how to program.
// The goal of the game, is to simply to collect balls until a score or time limit has been reached.
//--------------------------------------------------------------------------------------------------
// created by Rune; with massive help from sigonasr2 on Javidx9's One Lone Coder Discord server
//--------------------------------------------------------------------------------------------------
#define OLC_PGE_APPLICATION
#include <iostream>
#include "pixelGameEngine.h" // use this for drawing stuff to screen
using namespace olc;
//--------------------------------------------------------------------------------------------------
// class
//--------------------------------------------------------------------------------------------------
class BallGame : public olc::PixelGameEngine
{
public:
BallGame()
{
sAppName = "Rectangle Collision";
}
public:
struct Rectangle{
vd2d pos;
vd2d size;
};
vd2d pos = {0,0};
Rectangle r1 = {{64,64},{16,16}};
Rectangle r3 = {{128,64},{16,16}};
Rectangle r2 = {pos,{8,8}};
//--------------------------------------------------------------------------------------------------
// Create stuff for game
//--------------------------------------------------------------------------------------------------
bool OnUserCreate() override
{
return true;
}
//--------------------------------------------------------------------------------------------------
// main game function
//--------------------------------------------------------------------------------------------------
bool OnUserUpdate(float fElapsedTime) override
{
Clear(VERY_DARK_CYAN);
if (GetKey(A).bHeld) {
r2.pos.x-=20*fElapsedTime;
}
if (GetKey(D).bHeld) {
r2.pos.x+=20*fElapsedTime;
}
if (GetKey(W).bHeld) {
r2.pos.y-=20*fElapsedTime;
}
if (GetKey(S).bHeld) {
r2.pos.y+=20*fElapsedTime;
}
if (Collision(r1,r2)) {
FillRect(r1.pos,r1.size,YELLOW);
} else {
FillRect(r1.pos,r1.size,RED);
}
if (Collision(r3,r2)) {
FillRect(r3.pos,r1.size,YELLOW);
} else {
FillRect(r3.pos,r1.size,GREEN);
}
FillRect(r2.pos,r2.size,BLUE);
return true;
}
bool Collision(Rectangle r1,Rectangle r2) {
return abs(r1.pos.x-r2.pos.x)<r1.size.x&&abs(r1.pos.y-r2.pos.y)<r1.size.y;
}
bool Collision2(Rectangle r1,Rectangle r2) {
return abs(r1.pos.x-r2.pos.x)<r1.size.x&&abs(r1.pos.y-r2.pos.y)<r1.size.y;
}
};
//--------------------------------------------------------------------------------------------------
int main()
{
BallGame game;
if (game.Construct(256, 240, 4, 4))
game.Start();
return 0;
}
//--------------------------------------------------------------------------------------------------
// END OF FILE
//--------------------------------------------------------------------------------------------------