diff --git a/script/client.js b/script/client.js index dd6a3b5..7112015 100644 --- a/script/client.js +++ b/script/client.js @@ -1,6 +1,7 @@ var canvas; var canvas_center = new vector(0, 0); var mouse_position = new vector(0, 0); +var camera = new vector(0, 0); function load_image(path) { let image = new Image(); @@ -9,8 +10,8 @@ function load_image(path) { } function global_to_canvas(pos) { - let tempx = -player.position.x + pos.x + canvas_center.x; - let tempy = -player.position.y + pos.y + canvas_center.y; + let tempx = -camera.x + pos.x + canvas_center.x; + let tempy = -camera.y + pos.y + canvas_center.y; return new vector(tempx, tempy); } diff --git a/script/game.js b/script/game.js index 76c0e4b..40541a6 100644 --- a/script/game.js +++ b/script/game.js @@ -90,18 +90,6 @@ function key_up(e) { } } -function game_tick() { - //calculations - do_collisions(); - do_movement(); - - //rendering - render_background(); - render_characters(); - render_nodes(); - render_usernames(); -} - function init_player() { let player_vector = new vector(0, 0); player = new character(player_vector, 0, 0, username); @@ -209,13 +197,25 @@ document.onmousemove = function(e) { //position.rot = point_towards([xenter, yenter], e) + rotate_offset; mouse_position.x = e.pageX; mouse_position.y = e.pageY; -}; +} + +function game_tick() { + //calculations + do_movement(); + do_collisions(); + move_camera(); + + //rendering + render_background(); + render_characters(); + render_nodes(); + render_usernames(); +} function render_characters() { let ctx = canvas.getContext("2d"); characters.forEach(function(itr, idx) { - ctx.save(); - //draw character + ctx.save(); let character_position = global_to_canvas(itr.position); ctx.translate(character_position.x, character_position.y); ctx.rotate(itr.rotation); @@ -266,14 +266,20 @@ function render_nodes() { let position = global_to_canvas(itr.position); let rotation = itr.rotation; let image = game_data.world.biome.forest[itr.image].img; + //let image = game_data.world.biome.forest.tree.img; ctx.translate(position.x, position.y); ctx.rotate(rotation); - ctx.drawImage(image, image.width/2, image.height/2, dwidth=itr.size, dheight=itr.size); + ctx.drawImage(image, -itr.size/2, -itr.size/2, dwidth=itr.size, dheight=itr.size); ctx.restore(); }); } +function move_camera() { + camera.x = player.position.x; + camera.y = player.position.y; +} + function open_socket() { server = new WebSocket("ws://NUC-server-1:8080"); server.onopen = function() {