Make squares selectable

This commit is contained in:
Miloslav Číž 2018-09-10 13:53:03 +02:00
parent 8d370cda93
commit 09a4856a09

View file

@ -22,7 +22,7 @@ Player player;
#define JUMP_SPEED 500
char floorColor = 0;
char ceilingColor = 0;
Vector2D selectedSquare; ///< Coords of tile selected for editing.
#define HEIGHT_PROFILE_LENGTH 256
const int8_t heightProfile[] = {
@ -148,7 +148,7 @@ inline void pixelFunc(PixelInfo pixel)
if (pixel.isWall)
{
c = 50;
c = pixel.hit.square.x != selectedSquare.x || pixel.hit.square.y != selectedSquare.y ? 50 : 30;
intensity = pixel.depth / (UNITS_PER_SQUARE * 3);
intensity += pixel.hit.direction % 2 == 0 ? 2 : 0;
@ -196,7 +196,7 @@ void draw()
c.computeTextureCoords = 0;
render(player.mCamera,floorHeightAt,0,0,pixelFunc,c);
/*
pokitto.display.setColor(rgbToIndex(7,7,3));
pokitto.display.setCursor(1,1);
pokitto.display.print(player.mCamera.position.x);
@ -204,7 +204,7 @@ pokitto.display.print(" ");
pokitto.display.print(player.mCamera.position.y);
pokitto.display.print(" ");
pokitto.display.print(player.mCamera.direction);
*/
}
bool runReleased = false;
@ -214,7 +214,6 @@ int main()
initGeneral();
floorColor = rgbToIndex(4,2,0);
ceilingColor = rgbToIndex(2,2,3);
player.setPositionSquare(4,5);
@ -236,6 +235,29 @@ int main()
Vector2D d = angleToDirection(player.mCamera.direction);
Vector2D facingOffset;
if (player.mCamera.direction > (4 * UNITS_PER_SQUARE / 12) &&
player.mCamera.direction <= (8 * UNITS_PER_SQUARE / 12))
facingOffset.x = -1;
else if (player.mCamera.direction < (2 * UNITS_PER_SQUARE / 12) ||
player.mCamera.direction >= (10 * UNITS_PER_SQUARE / 12))
facingOffset.x = 1;
else
facingOffset.x = 0;
if (player.mCamera.direction > (UNITS_PER_SQUARE / 12) &&
player.mCamera.direction <= (5 * UNITS_PER_SQUARE / 12))
facingOffset.y = -1;
else if (player.mCamera.direction > (6 * UNITS_PER_SQUARE / 12) &&
player.mCamera.direction <= (11 * UNITS_PER_SQUARE / 12))
facingOffset.y = 1;
else
facingOffset.y = 0;
selectedSquare.x = divRoundDown(player.mCamera.position.x,UNITS_PER_SQUARE) + facingOffset.x;
selectedSquare.y = divRoundDown(player.mCamera.position.y,UNITS_PER_SQUARE) + facingOffset.y;
Vector2D moveOffset;
moveOffset.x = 0;
@ -302,7 +324,7 @@ int main()
moveOffset = d;
}
else
player.mCamera.direction += addition * rotationStep;
player.mCamera.direction = wrap(player.mCamera.direction + addition * rotationStep,UNITS_PER_SQUARE);
Unit prevHeight = player.mCamera.height;