summaryrefslogtreecommitdiffhomepage
path: root/samples/07_advanced_rendering/08_z_targeting_camera/app/main.rb
diff options
context:
space:
mode:
author_Tradam <[email protected]>2021-12-16 19:22:26 -0500
committerGitHub <[email protected]>2021-12-16 19:22:26 -0500
commit5954b9beb4d4a3b4f248d72d1851195f030558a8 (patch)
treefecd8aa840a25afdb502915b0fdb4d03b7ed339a /samples/07_advanced_rendering/08_z_targeting_camera/app/main.rb
parent2f845281f133849256b57bb08fd3e9ae57600784 (diff)
parenteaa29e72939f5edf61735ccbb73c36ee89369f65 (diff)
downloaddragonruby-game-toolkit-contrib-master.tar.gz
dragonruby-game-toolkit-contrib-master.zip
Merge branch 'DragonRuby:master' into masterHEADmaster
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.rb106
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