diff options
| author | _Tradam <[email protected]> | 2021-12-16 19:22:26 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-12-16 19:22:26 -0500 |
| commit | 5954b9beb4d4a3b4f248d72d1851195f030558a8 (patch) | |
| tree | fecd8aa840a25afdb502915b0fdb4d03b7ed339a /samples/07_advanced_rendering/08_z_targeting_camera/app/main.rb | |
| parent | 2f845281f133849256b57bb08fd3e9ae57600784 (diff) | |
| parent | eaa29e72939f5edf61735ccbb73c36ee89369f65 (diff) | |
| download | dragonruby-game-toolkit-contrib-master.tar.gz dragonruby-game-toolkit-contrib-master.zip | |
Diffstat (limited to 'samples/07_advanced_rendering/08_z_targeting_camera/app/main.rb')
| -rw-r--r-- | samples/07_advanced_rendering/08_z_targeting_camera/app/main.rb | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/samples/07_advanced_rendering/08_z_targeting_camera/app/main.rb b/samples/07_advanced_rendering/08_z_targeting_camera/app/main.rb deleted file mode 100644 index ecdbfd3..0000000 --- a/samples/07_advanced_rendering/08_z_targeting_camera/app/main.rb +++ /dev/null @@ -1,106 +0,0 @@ -class Game - attr_gtk - - def tick - defaults - render - input - calc - end - - def defaults - outputs.background_color = [219, 208, 191] - player.x ||= 634 - player.y ||= 153 - player.angle ||= 90 - player.distance ||= arena_radius - target.x ||= 634 - target.y ||= 359 - end - - def render - outputs[:scene].sprites << ([0, 0, 933, 700, 'sprites/arena.png'].center_inside_rect grid.rect) - outputs[:scene].sprites << target_sprite - outputs[:scene].sprites << player_sprite - outputs.sprites << scene - end - - def target_sprite - { - x: target.x, y: target.y, - w: 10, h: 10, - path: 'sprites/square/black.png' - }.anchor_rect 0.5, 0.5 - end - - def input - if inputs.up && player.distance > 30 - player.distance -= 2 - elsif inputs.down && player.distance < 200 - player.distance += 2 - end - - player.angle += inputs.left_right * -1 - end - - def calc - player.x = target.x + ((player.angle * 1).vector_x player.distance) - player.y = target.y + ((player.angle * -1).vector_y player.distance) - end - - def player_sprite - { - x: player.x, - y: player.y, - w: 50, - h: 100, - path: 'sprites/player.png', - angle: (player.angle * -1) + 90 - }.anchor_rect 0.5, 0 - end - - def center_map - { x: 634, y: 359 } - end - - def zoom_factor_single - 2 - ((args.geometry.distance player, center_map).fdiv arena_radius) - end - - def zoom_factor - zoom_factor_single ** 2 - end - - def arena_radius - 206 - end - - def scene - { - x: (640 - player.x) + (640 - (640 * zoom_factor)), - y: (360 - player.y - (75 * zoom_factor)) + (320 - (320 * zoom_factor)), - w: 1280 * zoom_factor, - h: 720 * zoom_factor, - path: :scene, - angle: player.angle - 90, - angle_anchor_x: (player.x.fdiv 1280), - angle_anchor_y: (player.y.fdiv 720) - } - end - - def player - state.player - end - - def target - state.target - end -end - -def tick args - $game ||= Game.new - $game.args = args - $game.tick -end - -$gtk.reset |
