GameLib_SetPosOffset

This commit is contained in:
2021-10-02 20:01:34 +02:00
parent a78a835210
commit c611da0fd1
2 changed files with 18 additions and 6 deletions

View File

@@ -31,6 +31,7 @@ int _pft;
int _game_size[2]; int _game_size[2];
int _game_pos0[2]; int _game_pos0[2];
int _game_pos1[2]; int _game_pos1[2];
int _game_posOffset[2];
long long t_proc; long long t_proc;
long long t_col; long long t_col;
@@ -201,8 +202,8 @@ void GameLib_ProcLoop(void *data) {
long long time; long long time;
// Step the gamePosition // Step the gamePosition
_game_pos0[0] = _game_pos1[0]; _game_pos0[0] = _game_pos1[0] + _game_posOffset[0];
_game_pos0[1] = _game_pos1[1]; _game_pos0[1] = _game_pos1[1] + _game_posOffset[1];
// Process // Process
time = Time_GetTime(); time = Time_GetTime();
@@ -449,6 +450,7 @@ void GameLib_Loop(void (*gameproc)(), void (*gamepostproc)(),
// GameLib_UpdatePos // GameLib_UpdatePos
// GameLib_SetPos // GameLib_SetPos
// GameLib_GetPosInstant // GameLib_GetPosInstant
// GameLib_SetPosOffset
// //
// //
void GameLib_GetPos(int pos[2]) { void GameLib_GetPos(int pos[2]) {
@@ -470,8 +472,14 @@ void GameLib_GetSize(int size[2]) {
size[1] = _game_size[1]; size[1] = _game_size[1];
} }
void GameLib_GetPosInstant(int pos[2], float f) { void GameLib_GetPosInstant(int pos[2], float f) {
pos[0] = _game_pos0[0] + f * (_game_pos1[0] - _game_pos0[0]); pos[0] = _game_pos0[0] +
pos[1] = _game_pos0[1] + f * (_game_pos1[1] - _game_pos0[1]); f * ((_game_pos1[0] + _game_posOffset[0]) - _game_pos0[0]);
pos[1] = _game_pos0[1] +
f * ((_game_pos1[1] + _game_posOffset[1]) - _game_pos0[1]);
}
void GameLib_SetPosOffset(int posOffset[2]) {
_game_posOffset[0] = posOffset[0];
_game_posOffset[1] = posOffset[1];
} }
///////////////////////////// /////////////////////////////
@@ -645,8 +653,10 @@ void GameLib_ConvertScreenPositionToGamePosition(vec2 screenPos, vec2 gamePos,
float f) { float f) {
int game_pos[2]; int game_pos[2];
game_pos[0] = _game_pos0[0] + f * (_game_pos1[0] - _game_pos0[0]); game_pos[0] = _game_pos0[0] +
game_pos[1] = _game_pos0[1] + f * (_game_pos1[1] - _game_pos0[1]); f * ((_game_pos1[0] + _game_posOffset[0]) - _game_pos0[0]);
game_pos[1] = _game_pos0[1] +
f * ((_game_pos1[1] + _game_posOffset[1]) - _game_pos0[1]);
gamePos[0] = (screenPos[0] * _game_size[0]) + game_pos[0]; gamePos[0] = (screenPos[0] * _game_size[0]) + game_pos[0];
gamePos[1] = (screenPos[1] * _game_size[1]) + game_pos[1]; gamePos[1] = (screenPos[1] * _game_size[1]) + game_pos[1];

View File

@@ -48,6 +48,7 @@ void GameLib_Loop(void (*gameproc)(), void (*gamepostproc)(),
// GameLib_UpdatePos // GameLib_UpdatePos
// GameLib_SetPos // GameLib_SetPos
// GameLib_GetPosInstant // GameLib_GetPosInstant
// GameLib_SetPosOffset
// //
// //
void GameLib_GetPos(int pos[2]); void GameLib_GetPos(int pos[2]);
@@ -55,6 +56,7 @@ void GameLib_SetPos(int pos[2]);
void GameLib_UpdatePos(int pos[2]); void GameLib_UpdatePos(int pos[2]);
void GameLib_GetSize(int size[2]); void GameLib_GetSize(int size[2]);
void GameLib_GetPosInstant(int pos[2], float f); void GameLib_GetPosInstant(int pos[2], float f);
void GameLib_SetPosOffset(int posOffset[2]);
///////////////////////////// /////////////////////////////
// GameLib_MoveToPos // GameLib_MoveToPos