Skip to content

Commit

Permalink
Added ladders
Browse files Browse the repository at this point in the history
From issue #1
  • Loading branch information
4ndr3w committed Feb 5, 2013
1 parent 5dd8fc7 commit 79b7976
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 3 deletions.
3 changes: 2 additions & 1 deletion src/tsa2035/game/content/core/Game.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.lwjgl.LWJGLException;

import tsa2035.game.content.levels.level1.DemoLevel;
import tsa2035.game.content.levels.level1.Level1;
import tsa2035.game.engine.core.Renderer;

Expand All @@ -13,7 +14,7 @@ public class Game {
*/
public static void main(String[] args) throws LWJGLException {
Renderer.init(800, 600);
Renderer.renderLoop(new Level1());
Renderer.renderLoop(new DemoLevel());
}

}
5 changes: 3 additions & 2 deletions src/tsa2035/game/content/levels/level1/DemoLevel.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import tsa2035.game.content.levels.MainCharacter;
import tsa2035.game.engine.scene.InteractionCallback;
import tsa2035.game.engine.scene.Ladder;
import tsa2035.game.engine.scene.PolyTexSprite;
import tsa2035.game.engine.scene.Scene;
import tsa2035.game.engine.scene.Sprite;
Expand All @@ -19,8 +20,8 @@ public DemoLevel()
setBackground(new SpriteBackground(TextureManager.getTextureFromResource("/tsa2035/game/content/images/common/wallpanels.png")));
addToScene("character", new MainCharacter(-0.7f, 0.15f)).setLayer(10);
addToScene("floor", new Sprite(0f, -0.98f, TextureManager.getTextureFromResource("/tsa2035/game/content/images/common/floor.png"))).setSolid(true);
addToScene("ladder1", new Sprite(-0.55f, -0.64f, TextureManager.getTextureFromResource("/tsa2035/game/content/images/common/ladder_short.png"))).setInteractable(true);
addToScene("ladder2", new Sprite(0.45f, -0.46f, TextureManager.getTextureFromResource("/tsa2035/game/content/images/common/ladder_long.png"))).setInteractable(true);
addToScene("ladder1", new Ladder(-0.55f, -0.64f, TextureManager.getTextureFromResource("/tsa2035/game/content/images/common/ladder_short.png"), "character")).setInteractable(true);
addToScene("ladder2", new Ladder(0.45f, -0.46f, TextureManager.getTextureFromResource("/tsa2035/game/content/images/common/ladder_long.png"), "character")).setInteractable(true);
addToScene("pipes", new Sprite(0f, 0.89f, TextureManager.getTextureFromResource("/tsa2035/game/content/images/common/pipes.png"))).setSolid(true).setLayer(0);
addToScene("vents", new Sprite(0f, 0.7f, TextureManager.getTextureFromResource("/tsa2035/game/content/images/common/vents.png"))).setSolid(true).setLayer(-1);
addToScene("door", new Sprite(0.75f, 0.315f, TextureManager.getTextureFromResource("/tsa2035/game/content/images/common/door.png"))).setLayer(-2);
Expand Down
20 changes: 20 additions & 0 deletions src/tsa2035/game/engine/scene/Ladder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package tsa2035.game.engine.scene;

import tsa2035.game.engine.texture.Texture;

public class Ladder extends Sprite {
String playerName;
public Ladder(float x, float y, Texture t, String playerName) {
super(x, y, t);
this.playerName = playerName;
}

public void render(Scene parent)
{
super.render(parent);
Player player = (Player)parent.getObject(playerName);
player.setGravity(!player.contacting(this));
player.setJumpingDisabled(player.contacting(this));
}

}
19 changes: 19 additions & 0 deletions src/tsa2035/game/engine/scene/Player.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ public class Player extends Sprite {
float jumpHeight = 0;
float jumpRate = 0;
boolean isJumping = false;
boolean jumpingDisabled = false;
float currentJumpOffset = 0f;
float lastJumpOffset = 0;

Expand All @@ -33,6 +34,16 @@ public Player(float x, float y, Texture t, boolean handleGravity, float jumpHeig
this.jumpRate = jumpRate;
}

public void setGravity(boolean state)
{
handleGravity = state;
}

public void setJumpingDisabled(boolean state)
{
jumpingDisabled = state;
}

public void render(Scene scene)
{
Iterator<Sprite> sceneObjects = scene.iterator();
Expand Down Expand Up @@ -75,6 +86,9 @@ else if ( hitSide != Side.NONE )
}
}

if ( jumpingDisabled )
allowJumping = false;

if ( !isJumping )
isJumping = ( allowJumping && Keyboard.isKeyDown(Keyboard.KEY_SPACE) );

Expand Down Expand Up @@ -118,6 +132,11 @@ else if ( isJumping && jumpHeight > 0 )
{
setY(getY()-0.005f);
}

if ( Keyboard.isKeyDown(Keyboard.KEY_W) && !handleGravity )
{
setY(getY()+0.005f);
}

if ( !hitSides[Side.LEFT.ordinal()] && Keyboard.isKeyDown(Keyboard.KEY_D) )
{
Expand Down

0 comments on commit 79b7976

Please sign in to comment.