Skip to content
Snippets Groups Projects
Commit adca0d31 authored by Helena Steine Tysland's avatar Helena Steine Tysland
Browse files

Merge branch '41-make-the-players-stand-before-countdown' into 'master'

Resolve "make the players stand before countdown"

Closes #41

See merge request !12
parents fef78ec8 ac0dae72
No related branches found
No related tags found
1 merge request!12Resolve "make the players stand before countdown"
Pipeline #218916 failed
...@@ -62,14 +62,14 @@ class GameScreen(private val game: Netrunner, private val controller: GameContro ...@@ -62,14 +62,14 @@ class GameScreen(private val game: Netrunner, private val controller: GameContro
dispose() dispose()
} }
}) })
Client.sock.on("counter") { it -> Client.sock.on("counter") { it ->
if (it.isEmpty()) return@on if (it.isEmpty()) return@on
if (it[0] == "0") { if (it[0] == "0") {
label.setText("")} label.setText("")}
else else {
label.setText(it[0].toString()) label.setText(it[0].toString())
} }}
val table = Table() val table = Table()
table.setFillParent(true) table.setFillParent(true)
......
...@@ -2,31 +2,67 @@ package tdt4240.netrunner.view.controllers ...@@ -2,31 +2,67 @@ package tdt4240.netrunner.view.controllers
import com.badlogic.gdx.Gdx import com.badlogic.gdx.Gdx
import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.Texture
import com.badlogic.gdx.scenes.scene2d.ui.Label
import tdt4240.netrunner.game.Client
import tdt4240.netrunner.game.GameController import tdt4240.netrunner.game.GameController
import tdt4240.netrunner.model.game.EcsController import tdt4240.netrunner.model.game.EcsController
import tdt4240.netrunner.model.game.EcsEngine import tdt4240.netrunner.model.game.EcsEngine
import tdt4240.netrunner.model.game.components.dynamic.PositionComponent import tdt4240.netrunner.model.game.components.dynamic.PositionComponent
import tdt4240.netrunner.model.game.components.dynamic.VelocityComponent
import tdt4240.netrunner.model.game.components.living.DimensionComponent import tdt4240.netrunner.model.game.components.living.DimensionComponent
import tdt4240.netrunner.model.game.components.living.PlayerComponent import tdt4240.netrunner.model.game.components.living.PlayerComponent
class PlayerRenderer(val gController: GameController, engine: EcsEngine) : EcsController(engine) { class PlayerRenderer(val gController: GameController, engine: EcsEngine) : EcsController(engine) {
override fun render() { override fun render() {
gController.game.batch.begin() val labelStyle = Label.LabelStyle()
labelStyle.font = gController.game.skin.getFont("default-font")
labelStyle.fontColor = Color.WHITE
val label = Label(" ", labelStyle)
label.setFontScale(5F,5F)
label.setPosition(20f,20f)
//gController.stage.addActor(label)
val players = super.ecs.getEntitiesByComponent(PlayerComponent::class.java) val players = super.ecs.getEntitiesByComponent(PlayerComponent::class.java)
for (player in players) { for (player in players) {
gController.game.batch.begin()
player.getComponent(PositionComponent::class.java)!!.also { pos -> player.getComponent(PositionComponent::class.java)!!.also { pos ->
player.getComponent(PlayerComponent::class.java).also { playerComponent -> player.getComponent(PlayerComponent::class.java).also { playerComponent ->
player.getComponent(DimensionComponent::class.java)!!.let { dims -> player.getComponent(DimensionComponent::class.java)!!.let { dims ->
player.getComponent(VelocityComponent::class.java)!!.also{velocity ->
val color = playerComponent!!.color val color = playerComponent!!.color
gController.game.apply { gController.game.apply {
if (velocity.velocity.x == 0.0.toFloat()){
val standing =
batch.draw(
Texture(playerComponent.color.graphicStand),
pos.pos.x,
pos.pos.y,
PlayerComponent.PLAYER_WIDTH,
PlayerComponent.PLAYER_HEIGHT
)
} else {
val texture = characterTextures[color]!! val texture = characterTextures[color]!!
batch.draw(texture.getFrame(), batch.draw(
texture.getFrame(),
pos.pos.x, pos.pos.x,
pos.pos.y, pos.pos.y,
PlayerComponent.PLAYER_WIDTH, PlayerComponent.PLAYER_WIDTH,
PlayerComponent.PLAYER_HEIGHT PlayerComponent.PLAYER_HEIGHT
) )
texture.update(0.75)
texture.update(Gdx.graphics.deltaTime.toDouble())
}
val isCurrentPlayer = playerComponent.uid == gController.playerUid val isCurrentPlayer = playerComponent.uid == gController.playerUid
font.color = if (isCurrentPlayer) Color.GREEN else Color.WHITE font.color = if (isCurrentPlayer) Color.GREEN else Color.WHITE
...@@ -39,8 +75,7 @@ class PlayerRenderer(val gController: GameController, engine: EcsEngine) : EcsCo ...@@ -39,8 +75,7 @@ class PlayerRenderer(val gController: GameController, engine: EcsEngine) : EcsCo
// TODO: render username // TODO: render username
} }
} }
} gController.game.batch.end() }}}}
gController.game.batch.end()
}
}
\ No newline at end of file
...@@ -30,7 +30,7 @@ object TextureRepository { ...@@ -30,7 +30,7 @@ object TextureRepository {
init { init {
for (color in PlayerColor.values()) { for (color in PlayerColor.values()) {
runningCharacterBitmaps[color] = Texture(Gdx.files.internal(color.graphic)) runningCharacterBitmaps[color] = Texture(Gdx.files.internal(color.graphicRun))
} }
} }
......
package tdt4240.netrunner.model.game.data package tdt4240.netrunner.model.game.data
enum class PlayerColor(val graphic: String, val uiRepresentation: String) { enum class PlayerColor(val graphicStand: String, val graphicRun: String, val uiRepresentation: String) {
GREEN("char_green_run.png","Green"), GREEN("char_green_stand.png", "char_green_run.png","Green"),
BLUE("char_blue_run.png","Blue"), BLUE("char_blue_stand.png","char_blue_run.png","Blue"),
RED("char_red_run.png","Red"), RED("char_red_stand.png","char_red_run.png","Red"),
YELLOW("char_yellow_run.png", "Yellow"); YELLOW("char_yellow_stand.png","char_yellow_run.png", "Yellow");
companion object { companion object {
val uiRepresentations by lazy { val uiRepresentations by lazy {
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment