From e986f8eff2a72d2370a3df3bac651c1746dcc6dc Mon Sep 17 00:00:00 2001 From: Indrajith K L Date: Thu, 2 Jul 2020 03:32:44 +0530 Subject: * Player Identification - Adds Red outline for enemies * Player HUD Name --- source/PlayState.hx | 49 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 11 deletions(-) (limited to 'source/PlayState.hx') diff --git a/source/PlayState.hx b/source/PlayState.hx index f04dcc2..f88562c 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -3,13 +3,19 @@ package; import flixel.FlxG; import flixel.FlxSprite; import flixel.FlxState; +import flixel.ui.FlxVirtualPad; +import flixel.util.FlxColor; import io.colyseus.Client; import io.colyseus.Room; import models.State; +import openfl.display.BlendMode; class PlayState extends FlxState { - var client = new Client('ws://localhost:3000'); + var client = new Client('ws://dungeon-server.glitch.me'); + + public static var virtualPad:FlxVirtualPad; + private var room:Room; private var players:Map = new Map(); @@ -17,7 +23,9 @@ class PlayState extends FlxState override public function create() { super.create(); + virtualPad = new FlxVirtualPad(FULL, NONE); + add(virtualPad); this.client.joinOrCreate("my_room", [], State, function(err, room) { if (err != null) @@ -27,13 +35,18 @@ class PlayState extends FlxState } this.room = room; - this.room.state.players.onAdd = function(player, key) { trace("Player" + player.x); - var _player = new Player(player.x, player.y); + var _player = new Player(player.x, player.y, player.name, room.sessionId); this.players[key] = _player; add(_player); + if (room.sessionId == player.name) + { + FlxG.camera.follow(_player); + } + + trace(room.id); } this.room.state.players.onChange = function(player, key) @@ -53,32 +66,46 @@ class PlayState extends FlxState override public function update(elapsed:Float) { - if (FlxG.keys.pressed.UP) + var up, down, left, right; + #if desktop + up = FlxG.keys.pressed.UP; + down = FlxG.keys.justPressed.DOWN; + left = FlxG.keys.justReleased.LEFT; + right = FlxG.keys.justReleased.RIGHT; + #end + + #if mobile + up = virtualPad.buttonUp.pressed; + down = virtualPad.buttonDown.pressed; + left = virtualPad.buttonLeft.pressed; + right = virtualPad.buttonRight.pressed; + #end + if (up) { // The up arrow key is currently pressed // This code is executed every frame, while the key is pressed\ - this.room.send("move", {y: -1}); + this.room.send("move", {y: -1 * elapsed * 200}); } - if (FlxG.keys.justPressed.DOWN) + if (down) { // The left arrow key has just been pressed // This code is only executed once, on the frame immediately after the key has been pressed - this.room.send("move", {y: 1}); + this.room.send("move", {y: 1 * elapsed * 200}); } - if (FlxG.keys.justReleased.LEFT) + if (left) { // The left arrow key has just been released // This code is only executed once, on the frame immediately after the key has been released - this.room.send("move", {x: -1}); + this.room.send("move", {x: -1 * elapsed * 200}); } - if (FlxG.keys.justReleased.RIGHT) + if (right) { // The left arrow key has just been released // This code is only executed once, on the frame immediately after the key has been released - this.room.send("move", {x: 1}); + this.room.send("move", {x: 1 * elapsed * 200}); } super.update(elapsed); } -- cgit v1.2.3