Going on.
This commit is contained in:
parent
48dc21a071
commit
06f1017314
3
Notes
3
Notes
@ -1,6 +1,3 @@
|
||||
Bugs:
|
||||
It's possible to put a cube under yourself without jumping.
|
||||
|
||||
Cubes:
|
||||
0: Nothing
|
||||
1: Stone
|
||||
|
4
TODO
4
TODO
@ -1,4 +1,6 @@
|
||||
- Physics
|
||||
- Physics:
|
||||
- Improve jump and collisions.
|
||||
- Improve game speed.
|
||||
- Caves
|
||||
- Pause menu
|
||||
- Main menu
|
||||
|
@ -39,9 +39,9 @@
|
||||
#define CUBE_POS(x, y, z) (((x) - m_x) + (((y) - m_y) * CHUNK_WIDTH) + (((z) - m_z) * CHUNK_WIDTH * CHUNK_HEIGHT))
|
||||
|
||||
#define PLAYER_HEIGHT 1.8
|
||||
#define MOVEMENT_SPEED 3.0
|
||||
#define MOVEMENT_SPEED 3.5
|
||||
#define FLY_SPEED 0.05
|
||||
#define JUMP_SPEED 0.5
|
||||
#define GRAVITY 0.025
|
||||
#define JUMP_SPEED 0.15
|
||||
#define GRAVITY 0.00981
|
||||
|
||||
#endif // CONFIG_H
|
||||
|
@ -70,10 +70,10 @@ Map::Map(u16 width, u16 depth, u16 height) {
|
||||
for (int xC = 0; xC < CHUNK_WIDTH; xC++) {
|
||||
int x = xx * CHUNK_WIDTH + xC;
|
||||
int y = yy * CHUNK_DEPTH + yC;
|
||||
float perlin = get2DPerlinNoiseValue(x, y, 64) * 0 // 3
|
||||
+ get2DPerlinNoiseValue(x, y, 32) * 4 // 0
|
||||
+ get2DPerlinNoiseValue(x, y, 16) * 3 // 0.5
|
||||
+ get2DPerlinNoiseValue(x, y, 8) * 2; // 0.1
|
||||
float perlin = get2DPerlinNoiseValue(x, y, 64) * 3 // 3 - 0
|
||||
+ get2DPerlinNoiseValue(x, y, 32) * 2 // 0 - 4
|
||||
+ get2DPerlinNoiseValue(x, y, 16) * 2 // 0.5 - 3
|
||||
+ get2DPerlinNoiseValue(x, y, 8) * 1; // 0.1 - 2
|
||||
int heightValue = int((perlin * float(CHUNK_HEIGHT)) + float(m_height / 2));
|
||||
|
||||
if (heightValue < 0) heightValue = 0;
|
||||
|
@ -50,7 +50,14 @@ bool inTable(u16 t[], u16 n) {
|
||||
}
|
||||
|
||||
bool passable(s16 caseX, s16 caseY, s16 caseZ) {
|
||||
if(inTable(nonPassableTiles, Game::map->map()[MAP_POS(caseX, caseY, caseZ)])) {
|
||||
// TOO SLOW
|
||||
/*if(inTable(nonPassableTiles, Game::map->map()[MAP_POS(caseX, caseY, caseZ)])) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}*/
|
||||
int cubeid = Game::map->map()[MAP_POS(caseX, caseY, caseZ)];
|
||||
if(cubeid == 1 || cubeid == 2) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
|
@ -37,7 +37,7 @@ Player::Player(float x, float y, float z, float angle) {
|
||||
m_x = x;
|
||||
m_y = y;
|
||||
|
||||
m_eyeheight = z + 0.1;
|
||||
m_eyeheight = z + 0.8;
|
||||
|
||||
m_angleH = angle;
|
||||
m_angleV = 0.0;
|
||||
@ -63,31 +63,30 @@ void Player::move(float distance, float direction) {
|
||||
}
|
||||
|
||||
void Player::jump() {
|
||||
if(m_isJumping) {
|
||||
m_eyeheight += m_jumpSpeed / 4;
|
||||
if((m_isJumping) &&
|
||||
(passable(m_x, m_y, m_eyeheight + m_jumpSpeed + 0.5))) {
|
||||
m_eyeheight += m_jumpSpeed;
|
||||
|
||||
m_jumpSpeed -= GRAVITY;
|
||||
|
||||
if((m_jumpSpeed < 0) &&
|
||||
((!passable(m_x, m_y, m_eyeheight - PLAYER_HEIGHT - m_jumpSpeed / 4 - 0.1)) /* ||
|
||||
(!passable(m_x + 0.25, m_y, m_eyeheight - PLAYER_HEIGHT - m_jumpSpeed / 4 - 0.3)) ||
|
||||
(!passable(m_x, m_y + 0.25, m_eyeheight - PLAYER_HEIGHT - m_jumpSpeed / 4 - 0.3)) ||
|
||||
(!passable(m_x + 0.25, m_y + 0.25, m_eyeheight - PLAYER_HEIGHT - m_jumpSpeed / 4 - 0.3)) */ )) {
|
||||
((!passable(m_x, m_y, m_eyeheight - PLAYER_HEIGHT - m_jumpSpeed - 0.3)) /* ||
|
||||
(!passable(m_x + 0.25, m_y, m_eyeheight - PLAYER_HEIGHT - m_jumpSpeed - 0.1)) ||
|
||||
(!passable(m_x, m_y + 0.25, m_eyeheight - PLAYER_HEIGHT - m_jumpSpeed - 0.1)) ||
|
||||
(!passable(m_x + 0.25, m_y + 0.25, m_eyeheight - PLAYER_HEIGHT - m_jumpSpeed - 0.1)) */ )) {
|
||||
m_jumpSpeed = 0.0;
|
||||
m_isJumping = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if((m_jumpSpeed >= 0) &&
|
||||
((!passable(m_x, m_y, m_eyeheight + m_jumpSpeed / 4 + 0.5)) /* ||
|
||||
(!passable(m_x + 0.25, m_y, m_eyeheight + m_jumpSpeed / 4 + 0.3)) ||
|
||||
(!passable(m_x, m_y + 0.25, m_eyeheight + m_jumpSpeed / 4 + 0.3)) ||
|
||||
(!passable(m_x + 0.25, m_y + 0.25, m_eyeheight + m_jumpSpeed / 4 + 0.3)) */ )) {
|
||||
else if((m_jumpSpeed >= 0) &&
|
||||
((!passable(m_x, m_y, m_eyeheight + m_jumpSpeed + 0.5)) /* ||
|
||||
(!passable(m_x + 0.25, m_y, m_eyeheight + m_jumpSpeed + 0.5)) ||
|
||||
(!passable(m_x, m_y + 0.25, m_eyeheight + m_jumpSpeed + 0.5)) ||
|
||||
(!passable(m_x + 0.25, m_y + 0.25, m_eyeheight + m_jumpSpeed + 0.5)) */ )) {
|
||||
m_jumpSpeed = 0.0;
|
||||
}
|
||||
}
|
||||
else if((passable(m_x, m_y, m_eyeheight - PLAYER_HEIGHT - m_jumpSpeed / 4 - 0.1)) &&
|
||||
(passable(m_x, m_y, m_eyeheight - PLAYER_HEIGHT - m_jumpSpeed / 4 - 0.1))) {
|
||||
else if((passable(m_x, m_y, m_eyeheight - PLAYER_HEIGHT - m_jumpSpeed - 0.3)) /*&&
|
||||
(passable(m_x, m_y, m_eyeheight - PLAYER_HEIGHT - m_jumpSpeed - 0.1))*/) {
|
||||
m_jumpSpeed = 0.0;
|
||||
m_isJumping = true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user