From cd5199f5b7b411f17b7b62917a07b0038fe53cd6 Mon Sep 17 00:00:00 2001 From: realtradam Date: Thu, 15 Apr 2021 00:08:34 -0400 Subject: . --- quad_camera_tracker.rb | 10 +++++++++- run.rb | 8 ++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/quad_camera_tracker.rb b/quad_camera_tracker.rb index 81c7561..95f6cbd 100644 --- a/quad_camera_tracker.rb +++ b/quad_camera_tracker.rb @@ -105,13 +105,21 @@ module QuadCameraTracker end def x1 - @x1 / Camera.zoom_level + Camera.camera_position[0] - x + temp_angle = (Math::PI * -Camera.rotation_degrees) / 180 + rotatedx = (@x1 * Math.cos(temp_angle) - @y1 * Math.sin(temp_angle)) + + #rotatedx / Camera.zoom_level + Camera.camera_position[0] - x + temp_move_x = @x1 / Camera.zoom_level + Camera.camera_position[0] - x + temp_move_y = @y1 / Camera.zoom_level + Camera.camera_position[1] - y + temp_move_x * Math.cos(temp_angle) - temp_move_y * Math.sin(temp_angle) + #@y = (x_shifted * Math.sin(@angle) + @y1 * Math.cos(@angle)) # undo rotation/translation/zoom end # Should modify the x1 methods so they move everything else isntead # this is so that x1 is always the "origin" aka 0,0 of the shape def x1=(x1) + temp_angle = (Math::PI * -Camera.rotation_degrees) / 180 @x1 = ((x1 + x) - Camera.camera_position[0]) * Camera.zoom_level # add rotation level # apply rotation/translation/zoom then pass to super diff --git a/run.rb b/run.rb index d9f7630..9bf436e 100644 --- a/run.rb +++ b/run.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require 'ruby2d' +#require 'ruby2d' require_relative 'camera' require_relative 'animator' @@ -189,9 +189,9 @@ end x4: 0, y4: 20) Camera << @quad @frame = 0 - @player.rotate_relative(-@player.x, - -@player.y, - -12) +@player.rotate_relative(-@player.x, + -@player.y, + -12) update do @frame += 1 @frame %= 60 -- cgit v1.2.3