First Commit
This commit is contained in:
		
							
								
								
									
										19
									
								
								Entity.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								Entity.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					#include "Entity.h"
 | 
				
			||||||
 | 
					#include <iostream>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Entity::Entity(Vec2 p, Vec2 s, Vec2 a):
 | 
				
			||||||
 | 
						pos(p), spe(s), acc(a)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Entity::Update(){
 | 
				
			||||||
 | 
						pos = pos + spe + acc/2;
 | 
				
			||||||
 | 
						spe = spe + acc;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Entity::Debug() const{
 | 
				
			||||||
 | 
						std::cout << "pos= (" << pos.x << ", " << pos.y << ")" 
 | 
				
			||||||
 | 
							<< "spe= (" << spe.x << ", " << spe.y << ")" 
 | 
				
			||||||
 | 
							<< "acc= (" << acc.x << ", " << acc.y << ")" << std::endl;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										20
									
								
								Entity.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								Entity.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					#ifndef ENTITY_H
 | 
				
			||||||
 | 
					#define ENTITY_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "Vector.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Entity
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
						Vec2 pos, spe, acc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						Entity();
 | 
				
			||||||
 | 
						Entity(Vec2, Vec2, Vec2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void Debug() const;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						void Update();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* ENTITY_H */
 | 
				
			||||||
							
								
								
									
										15
									
								
								ErrorHandler.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								ErrorHandler.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					#include "ErrorHandler.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool ErrorHandler::send(ErrorType e, std::string message){
 | 
				
			||||||
 | 
						std::cout << "ERROR::(" << message << ")";
 | 
				
			||||||
 | 
						switch (e) {
 | 
				
			||||||
 | 
							case ErrorType::SDL_ERROR:
 | 
				
			||||||
 | 
								std::cout << SDL_GetError() << std::endl;
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
								std::cout << "UNKNOWN ERROR..." << std::endl;
 | 
				
			||||||
 | 
								return true;
 | 
				
			||||||
 | 
						}	
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								ErrorHandler.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								ErrorHandler.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					#ifndef ERRORHANDLER_H
 | 
				
			||||||
 | 
					#define ERRORHANDLER_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <iostream>
 | 
				
			||||||
 | 
					#include <SDL2/SDL.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum class ErrorType{
 | 
				
			||||||
 | 
						DEFAULT = -1,
 | 
				
			||||||
 | 
						SDL_ERROR
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ErrorHandler
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						static bool send(ErrorType e, std::string message);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* ERRORHANDLER_H */
 | 
				
			||||||
							
								
								
									
										16
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					CXX=g++
 | 
				
			||||||
 | 
					LDFLAGS= -lSDL2 -lm
 | 
				
			||||||
 | 
					CXXFLAGS= -g -Wall
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SOURCES = $(wildcard *.cpp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: sim
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sim: $(SOURCES)
 | 
				
			||||||
 | 
						$(CXX) $(CXXFLAGS) -o sim $(SOURCES) $(LDFLAGS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					run: sim
 | 
				
			||||||
 | 
						./sim
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean:
 | 
				
			||||||
 | 
						rm sim *.o
 | 
				
			||||||
							
								
								
									
										27
									
								
								Vector.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								Vector.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					#include "Vector.h"
 | 
				
			||||||
 | 
					#include <math.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Vec2 Vec2::operator+(const Vec2 right){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return {x + right.x, y + right.y};
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Vec2 Vec2::operator*(const Vec2 right){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return {x * right.x, y * right.y};
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Vec2 Vec2::operator*(const int right){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return {x * right, y * right};
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Vec2 Vec2::operator/(const int right){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return {x / right, y / right};
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int Vec2::norm(){
 | 
				
			||||||
 | 
						return sqrt(pow(x, 2) + pow(y,2));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										16
									
								
								Vector.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								Vector.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					#ifndef VECTOR_H
 | 
				
			||||||
 | 
					#define VECTOR_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct Vec2 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						int x, y = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Vec2 operator+ (const Vec2 left);
 | 
				
			||||||
 | 
						Vec2 operator* (const Vec2 left);
 | 
				
			||||||
 | 
						Vec2 operator* (const int left);
 | 
				
			||||||
 | 
						Vec2 operator/ (const int left);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						int norm();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* VECTOR_H */
 | 
				
			||||||
							
								
								
									
										61
									
								
								Window.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								Window.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,61 @@
 | 
				
			|||||||
 | 
					#include "Window.h"
 | 
				
			||||||
 | 
					#include "ErrorHandler.h"
 | 
				
			||||||
 | 
					#include <SDL2/SDL.h>
 | 
				
			||||||
 | 
					#include <iostream>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Window::Draw(std::function<bool(Window*)> f){
 | 
				
			||||||
 | 
						while(Running){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							Running = f(this);
 | 
				
			||||||
 | 
							SDL_RenderClear(ren);
 | 
				
			||||||
 | 
							SDL_RenderPresent(ren);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							Events();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Window::Events(){
 | 
				
			||||||
 | 
						while(SDL_PollEvent(e)){
 | 
				
			||||||
 | 
							if(e->type == SDL_QUIT){
 | 
				
			||||||
 | 
								Running = false;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if(e->type == SDL_KEYDOWN){
 | 
				
			||||||
 | 
								switch(e->key.keysym.sym){
 | 
				
			||||||
 | 
									case SDLK_a:
 | 
				
			||||||
 | 
										Running = false;
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Window::Window(std::string title, int width, int height)
 | 
				
			||||||
 | 
						: Running(true)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if(SDL_Init(SDL_INIT_VIDEO) != 0){
 | 
				
			||||||
 | 
							ErrorHandler::send(ErrorType::SDL_ERROR, "SDL_Init");
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						win = SDL_CreateWindow("test", 0,0, width, height, SDL_WINDOW_SHOWN);
 | 
				
			||||||
 | 
						if(win == NULL){
 | 
				
			||||||
 | 
							ErrorHandler::send(ErrorType::SDL_ERROR, "SDL_CreateWindow");
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_SOFTWARE);
 | 
				
			||||||
 | 
						if(ren == NULL){
 | 
				
			||||||
 | 
							ErrorHandler::send(ErrorType::SDL_ERROR, "SDL_CreateRenderer");
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Window::~Window(){
 | 
				
			||||||
 | 
						SDL_DestroyWindow(win);
 | 
				
			||||||
 | 
						SDL_DestroyRenderer(ren);
 | 
				
			||||||
 | 
						SDL_Quit();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SDL_Renderer* Window::GetRenderer(){
 | 
				
			||||||
 | 
						return ren;	
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										29
									
								
								Window.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								Window.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					#ifndef WINDOW_H
 | 
				
			||||||
 | 
					#define WINDOW_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <SDL2/SDL.h>
 | 
				
			||||||
 | 
					#include <string>
 | 
				
			||||||
 | 
					#include <functional>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Window
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
						SDL_Window* win;
 | 
				
			||||||
 | 
						SDL_Renderer* ren;
 | 
				
			||||||
 | 
						SDL_Event* e;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bool Running;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Window(std::string title, int width, int height);
 | 
				
			||||||
 | 
						virtual ~Window();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void Setup();
 | 
				
			||||||
 | 
						void Draw(std::function<bool(Window*)> f);
 | 
				
			||||||
 | 
						void Events();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						SDL_Renderer* GetRenderer();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif /* WINDOW_H */
 | 
				
			||||||
							
								
								
									
										26
									
								
								main.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								main.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					#include "Window.h"
 | 
				
			||||||
 | 
					#include "Entity.h"
 | 
				
			||||||
 | 
					#include <functional>
 | 
				
			||||||
 | 
					#include <SDL2/SDL.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool my_Draw(Window* win){
 | 
				
			||||||
 | 
						SDL_Renderer* ren = win->GetRenderer();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						SDL_SetRenderDrawColor(ren, 0xff, 0x00, 0x00, 0x00);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return true; 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int main(int argc, char *argv[])
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						/* Window win("test", 100, 100); */
 | 
				
			||||||
 | 
						/* win.Draw(my_Draw); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Entity t({0, 0}, {1, 1}, {0,0});
 | 
				
			||||||
 | 
						t.Debug();
 | 
				
			||||||
 | 
						t.Update();
 | 
				
			||||||
 | 
						t.Debug();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user