Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
rf_process [2022/05/05 16:47] yawin creado |
rf_process [2023/08/07 06:54] (actual) yawin |
||
---|---|---|---|
Línea 9: | Línea 9: | ||
| signal | unsigned int | [[RF_Signal | Estado]] en el que se encuentra el proceso | | | signal | unsigned int | [[RF_Signal | Estado]] en el que se encuentra el proceso | | ||
| type | string | Tipo de proceso | | | type | string | Tipo de proceso | | ||
- | | transform | [[Transform2D | Transform2D<int,float,float>]] | Posición, rotación y escala del proceso | | + | | transform | [[Transform2D | Transform2D<float,float,float>]] | Posición, rotación y escala del proceso | |
| zLayer | int | Altura de capa en la que se posiciona el proceso | | | zLayer | int | Altura de capa en la que se posiciona el proceso | | ||
| flipType | SDL_RendererFlip | Flag de renderizado de SDL | | | flipType | SDL_RendererFlip | Flag de renderizado de SDL | | ||
Línea 24: | Línea 24: | ||
| LateDraw | Función que se invoca durante el proceso de renderizado, después de ordenar los procesos para dicha tarea pero antes de renderizarlos | | | LateDraw | Función que se invoca durante el proceso de renderizado, después de ordenar los procesos para dicha tarea pero antes de renderizarlos | | ||
| AfterDraw | Función que se invoca durante el proceso de renderizado, tras renderizar el proceso | | | AfterDraw | Función que se invoca durante el proceso de renderizado, tras renderizar el proceso | | ||
+ | | Dispose | Función que se invoca al destruir el proceso | | ||
+ | > Opcionalmente, al invocar al constructor de RF_Process en la declaración del constructor que lo hereda, se puede porporcionar un string que representa el type del proceso. Si no se proporciona ningun type, éste tomará el valor "null". | ||
+ | |||
+ | ===== Ejemplos ===== | ||
+ | <code cpp> | ||
+ | class exeProcess : public RF_Process | ||
+ | { | ||
+ | public: | ||
+ | exeProcess():RF_Process("exeProcess"){} | ||
+ | virtual ~exeProcess(); | ||
+ | |||
+ | virtual void Update() | ||
+ | { | ||
+ | if(RF_Engine::instance->key[_esc] || RF_Engine::instance->key[_close_window]) | ||
+ | { | ||
+ | RF_Engine::instance->isRunning(false); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | ---- | ||
+ | ===== rf_process.h ===== | ||
<code cpp>class RF_Process | <code cpp>class RF_Process | ||
{ | { | ||
public: | public: | ||
- | RF_Process(string _type="null", string _father="", RF_Window *_window = nullptr) | + | RF_Process(string _type="null", RF_Window *_window = nullptr); |
- | { | + | virtual ~RF_Process(); |
- | type=_type; | + | |
- | father=_father; | + | |
- | graph=NULL; | + | |
- | window = _window; | + | |
- | transform.position = RF_Structs::Vector2<int>(0,0); | + | virtual void Start(); |
- | transform.scale = RF_Structs::Vector2<float>(1.0,1.0); | + | virtual void Update(); |
- | transform.rotation = 0; | + | virtual void FixedUpdate(); |
- | } | + | virtual void Draw(); |
+ | virtual void LateDraw(); | ||
+ | virtual void AfterDraw(); | ||
+ | virtual void Dispose(); | ||
- | virtual ~RF_Process(){} | + | /**Propiedades******/ |
- | + | ||
- | virtual void Start(){return;} | + | |
- | virtual void Update(){ return;} | + | |
- | virtual void FixedUpdate(){ return;} | + | |
- | virtual void Draw(){ return;} | + | |
- | virtual void LateDraw(){ return;} | + | |
- | virtual void AfterDraw(){return;} | + | |
- | virtual void Dispose(){return;} | + | |
- | + | ||
- | /**Atributos******/ | + | |
string id, father; | string id, father; | ||
unsigned int signal = RF_Structs::S_AWAKE; | unsigned int signal = RF_Structs::S_AWAKE; | ||
string type=""; | string type=""; | ||
SDL_Surface *graph; | SDL_Surface *graph; | ||
- | RF_Structs::Transform2D<int, float, float> transform; | + | RF_Structs::Transform2D<float, float, float> transform; |
int zLayer = -1; | int zLayer = -1; | ||
SDL_RendererFlip flipType = FLIP_NONE; | SDL_RendererFlip flipType = FLIP_NONE; | ||
- | RF_Window *window; | ||
/*******************/ | /*******************/ | ||
+ | |||
+ | RF_Window *window; | ||
bool operator<(const RF_Process* p) const; | bool operator<(const RF_Process* p) const; | ||
SDL_Rect getDimensions(); | SDL_Rect getDimensions(); | ||
- | virtual SDL_Rect normalizeBounds(const SDL_Rect& rect); | + | RF_Structs::Vector2<int> checkPoint(RF_Structs::Vector2<int> p); |
+ | RF_Structs::Vector2<int> checkPoint(int p_x, int p_y); | ||
};</code> | };</code> |