summaryrefslogtreecommitdiffhomepage
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/docs.html81
-rw-r--r--docs/docs.txt79
-rw-r--r--docs/parse_log.txt2035
3 files changed, 2133 insertions, 62 deletions
diff --git a/docs/docs.html b/docs/docs.html
index 5ad5d6c..6967368 100644
--- a/docs/docs.html
+++ b/docs/docs.html
@@ -2,7 +2,7 @@
<head>
<meta charset="utf-8">
<title>DragonRuby Game Toolkit Documentation</title>
- <link href="docs.css?ver=1628311142" rel="stylesheet" type="text/css" media="all">
+ <link href="docs.css?ver=1629947615" rel="stylesheet" type="text/css" media="all">
</head>
<body>
<div id='toc'>
@@ -52,7 +52,7 @@
<li><a class='header-1' href='#--docs---geometry-'>DOCS: <code>Geometry</code></a></li>
<li><a class='header-1' href='#--docs---gtk--geometry#scale_rect-'>DOCS: <code>GTK::Geometry#scale_rect</code></a></li>
<li><a class='header-1' href='#--source-code'>Source Code</a></li>
-<ul><li><a class='header-2' href='#---samples'>Samples</a></li></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---beginner-ruby-primer---automation-rb'>Learn Ruby Optional - Beginner Ruby Primer - automation.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---beginner-ruby-primer---main-rb'>Learn Ruby Optional - Beginner Ruby Primer - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---printing-txt'>Learn Ruby Optional - Intermediate Ruby Primer - printing.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---strings-txt'>Learn Ruby Optional - Intermediate Ruby Primer - strings.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---numbers-txt'>Learn Ruby Optional - Intermediate Ruby Primer - numbers.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---booleans-txt'>Learn Ruby Optional - Intermediate Ruby Primer - booleans.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---conditionals-txt'>Learn Ruby Optional - Intermediate Ruby Primer - conditionals.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---looping-txt'>Learn Ruby Optional - Intermediate Ruby Primer - looping.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---functions-txt'>Learn Ruby Optional - Intermediate Ruby Primer - functions.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---arrays-txt'>Learn Ruby Optional - Intermediate Ruby Primer - arrays.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---main-rb'>Learn Ruby Optional - Intermediate Ruby Primer - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-basics---labels---main-rb'>Rendering Basics - Labels - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-basics---lines---main-rb'>Rendering Basics - Lines - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-basics---solids-borders---main-rb'>Rendering Basics - Solids Borders - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-basics---sprites---main-rb'>Rendering Basics - Sprites - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-basics---sounds---main-rb'>Rendering Basics - Sounds - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----input-basics---keyboard---main-rb'>Input Basics - Keyboard - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----input-basics---moving-a-sprite---main-rb'>Input Basics - Moving A Sprite - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----input-basics---mouse---main-rb'>Input Basics - Mouse - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----input-basics---mouse-point-to-rect---main-rb'>Input Basics - Mouse Point To Rect - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----input-basics---mouse-rect-to-rect---main-rb'>Input Basics - Mouse Rect To Rect - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----input-basics---controller---main-rb'>Input Basics - Controller - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----input-basics---touch---main-rb'>Input Basics - Touch - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-sprites---animation-using-separate-pngs---main-rb'>Rendering Sprites - Animation Using Separate Pngs - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-sprites---animation-using-sprite-sheet---main-rb'>Rendering Sprites - Animation Using Sprite Sheet - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-sprites---animation-states---main-rb'>Rendering Sprites - Animation States - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-sprites---color-and-rotation---main-rb'>Rendering Sprites - Color And Rotation - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---simple---main-rb'>Physics And Collisions - Simple - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---moving-objects---main-rb'>Physics And Collisions - Moving Objects - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---entities---main-rb'>Physics And Collisions - Entities - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---box-collision---main-rb'>Physics And Collisions - Box Collision - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---box-collision-2---main-rb'>Physics And Collisions - Box Collision 2 - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---box-collision-3---main-rb'>Physics And Collisions - Box Collision 3 - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---jump-physics---main-rb'>Physics And Collisions - Jump Physics - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---bouncing-on-collision---ball-rb'>Physics And Collisions - Bouncing On Collision - ball.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---bouncing-on-collision---block-rb'>Physics And Collisions - Bouncing On Collision - block.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---bouncing-on-collision---cannon-rb'>Physics And Collisions - Bouncing On Collision - cannon.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---bouncing-on-collision---main-rb'>Physics And Collisions - Bouncing On Collision - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---bouncing-on-collision---peg-rb'>Physics And Collisions - Bouncing On Collision - peg.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---bouncing-on-collision---vector2d-rb'>Physics And Collisions - Bouncing On Collision - vector2d.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---ball-rb'>Physics And Collisions - Arbitrary Collision - ball.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---blocks-rb'>Physics And Collisions - Arbitrary Collision - blocks.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---linear_collider-rb'>Physics And Collisions - Arbitrary Collision - linear_collider.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---main-rb'>Physics And Collisions - Arbitrary Collision - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---paddle-rb'>Physics And Collisions - Arbitrary Collision - paddle.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---rectangle-rb'>Physics And Collisions - Arbitrary Collision - rectangle.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---square_collider-rb'>Physics And Collisions - Arbitrary Collision - square_collider.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---vector2d-rb'>Physics And Collisions - Arbitrary Collision - vector2d.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---collision-with-object-removal---ball-rb'>Physics And Collisions - Collision With Object Removal - ball.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---collision-with-object-removal---linear_collider-rb'>Physics And Collisions - Collision With Object Removal - linear_collider.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---collision-with-object-removal---main-rb'>Physics And Collisions - Collision With Object Removal - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---collision-with-object-removal---paddle-rb'>Physics And Collisions - Collision With Object Removal - paddle.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---collision-with-object-removal---tests-rb'>Physics And Collisions - Collision With Object Removal - tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---collision-with-object-removal---vector2d-rb'>Physics And Collisions - Collision With Object Removal - vector2d.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----mouse---mouse-click---main-rb'>Mouse - Mouse Click - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----mouse---mouse-move---main-rb'>Mouse - Mouse Move - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----mouse---mouse-move-paint-app---main-rb'>Mouse - Mouse Move Paint App - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----mouse---coordinate-systems---main-rb'>Mouse - Coordinate Systems - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----save-load---save-load-game---main-rb'>Save Load - Save Load Game - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-audio---audio-mixer---main-rb'>Advanced Audio - Audio Mixer - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-audio---audio-mixer---server_ip_address-txt'>Advanced Audio - Audio Mixer - server_ip_address.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-audio---audio-mixer---metadata---ios_metadata-txt'>Advanced Audio - Audio Mixer - Metadata - ios_metadata.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-audio---sound-synthesis---main-rb'>Advanced Audio - Sound Synthesis - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---simple-render-targets---main-rb'>Advanced Rendering - Simple Render Targets - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---render-targets-with-tile-manipulation---main-rb'>Advanced Rendering - Render Targets With Tile Manipulation - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---render-target-viewports---main-rb'>Advanced Rendering - Render Target Viewports - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---render-primitive-hierarchies---main-rb'>Advanced Rendering - Render Primitive Hierarchies - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---render-primitives-as-hash---main-rb'>Advanced Rendering - Render Primitives As Hash - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---pixel-arrays---main-rb'>Advanced Rendering - Pixel Arrays - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---simple-camera---main-rb'>Advanced Rendering - Simple Camera - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---splitscreen-camera---main-rb'>Advanced Rendering - Splitscreen Camera - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---z-targeting-camera---main-rb'>Advanced Rendering - Z Targeting Camera - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---blend-modes---main-rb'>Advanced Rendering - Blend Modes - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----tweening-lerping-easing-functions---easing-functions---main-rb'>Tweening Lerping Easing Functions - Easing Functions - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----tweening-lerping-easing-functions---cubic-bezier---main-rb'>Tweening Lerping Easing Functions - Cubic Bezier - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----tweening-lerping-easing-functions---easing-using-spline---main-rb'>Tweening Lerping Easing Functions - Easing Using Spline - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----tweening-lerping-easing-functions---parametric-enemy-movement---main-rb'>Tweening Lerping Easing Functions - Parametric Enemy Movement - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----performance---sprites-as-hash---main-rb'>Performance - Sprites As Hash - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----performance---sprites-as-entities---main-rb'>Performance - Sprites As Entities - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----performance---sprites-as-strict-entities---main-rb'>Performance - Sprites As Strict Entities - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----performance---sprites-as-classes---main-rb'>Performance - Sprites As Classes - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----performance---static-sprites-as-classes---main-rb'>Performance - Static Sprites As Classes - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----performance---static-sprites-as-classes-with-custom-drawing---main-rb'>Performance - Static Sprites As Classes With Custom Drawing - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----performance---collision-limits---main-rb'>Performance - Collision Limits - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---trace-debugging---main-rb'>Advanced Debugging - Trace Debugging - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---trace-debugging-classes---main-rb'>Advanced Debugging - Trace Debugging Classes - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---benchmark_api_tests-rb'>Advanced Debugging - Unit Tests - benchmark_api_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---exception_raising_tests-rb'>Advanced Debugging - Unit Tests - exception_raising_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---fn_tests-rb'>Advanced Debugging - Unit Tests - fn_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---gen_docs-rb'>Advanced Debugging - Unit Tests - gen_docs.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---geometry_tests-rb'>Advanced Debugging - Unit Tests - geometry_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---http_tests-rb'>Advanced Debugging - Unit Tests - http_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---nil_coercion_tests-rb'>Advanced Debugging - Unit Tests - nil_coercion_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---object_to_primitive_tests-rb'>Advanced Debugging - Unit Tests - object_to_primitive_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---parsing_tests-rb'>Advanced Debugging - Unit Tests - parsing_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---pretty_format_tests-rb'>Advanced Debugging - Unit Tests - pretty_format_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---require_tests-rb'>Advanced Debugging - Unit Tests - require_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---serialize_deserialize_tests-rb'>Advanced Debugging - Unit Tests - serialize_deserialize_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---state_serialization_experimental_tests-rb'>Advanced Debugging - Unit Tests - state_serialization_experimental_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---suggest_autocompletion_tests-rb'>Advanced Debugging - Unit Tests - suggest_autocompletion_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----http---retrieve-images---main-rb'>Http - Retrieve Images - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----http---web-server---main-rb'>Http - Web Server - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----c-extensions---basics---main-rb'>C Extensions - Basics - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----c-extensions---intermediate---main-rb'>C Extensions - Intermediate - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----c-extensions---native-pixel-arrays---main-rb'>C Extensions - Native Pixel Arrays - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---breadth-first-search---main-rb'>Path Finding Algorithms - Breadth First Search - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---detailed-breadth-first-search---main-rb'>Path Finding Algorithms - Detailed Breadth First Search - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---breadcrumbs---main-rb'>Path Finding Algorithms - Breadcrumbs - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---early-exit---main-rb'>Path Finding Algorithms - Early Exit - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---dijkstra---main-rb'>Path Finding Algorithms - Dijkstra - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---heuristic---main-rb'>Path Finding Algorithms - Heuristic - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---heuristic-with-walls---main-rb'>Path Finding Algorithms - Heuristic With Walls - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---a-star---main-rb'>Path Finding Algorithms - A Star - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---tower-defense---main-rb'>Path Finding Algorithms - Tower Defense - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----3d---3d-cube---main-rb'>3d - 3d Cube - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----3d---wireframe---main-rb'>3d - Wireframe - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----3d---wireframe---data---what-is-this-txt'>3d - Wireframe - Data - what-is-this.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade---bullet-hell---main-rb'>Arcade - Bullet Hell - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade---dueling-starships---main-rb'>Arcade - Dueling Starships - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade/flappy-dragon/credits-txt'>arcade/flappy dragon/credits.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade/flappy-dragon/main-rb'>arcade/flappy dragon/main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade---pong---main-rb'>Arcade - Pong - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade---snakemoji---main-rb'>Arcade - Snakemoji - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade---solar-system---main-rb'>Arcade - Solar System - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade---sound-golf---main-rb'>Arcade - Sound Golf - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade---twinstick---main-rb'>Arcade - Twinstick - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----crafting---craft-game-starting-point---main-rb'>Crafting - Craft Game Starting Point - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----crafting---farming-game-starting-point---main-rb'>Crafting - Farming Game Starting Point - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----crafting---farming-game-starting-point---repl-rb'>Crafting - Farming Game Starting Point - repl.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----crafting---farming-game-starting-point---tests-rb'>Crafting - Farming Game Starting Point - tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----dev-tools---add-buttons-to-console---main-rb'>Dev Tools - Add Buttons To Console - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----dev-tools---animation-creator-starting-point---main-rb'>Dev Tools - Animation Creator Starting Point - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----dev-tools---tile-editor-starting-point---main-rb'>Dev Tools - Tile Editor Starting Point - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----dungeon-crawl---classics-jam---main-rb'>Dungeon Crawl - Classics Jam - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----fighting---special-move-inputs---main-rb'>Fighting - Special Move Inputs - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----lowrez---nokia-3310---main-rb'>Lowrez - Nokia 3310 - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----lowrez---nokia-3310---nokia-rb'>Lowrez - Nokia 3310 - nokia.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----lowrez---resolution-64x64---lowrez-rb'>Lowrez - Resolution 64x64 - lowrez.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----lowrez---resolution-64x64---main-rb'>Lowrez - Resolution 64x64 - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---clepto-frog---main-rb'>Platformer - Clepto Frog - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---clepto-frog---map-rb'>Platformer - Clepto Frog - map.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---gorillas-basic---credits-txt'>Platformer - Gorillas Basic - credits.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---gorillas-basic---main-rb'>Platformer - Gorillas Basic - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---gorillas-basic---tests-rb'>Platformer - Gorillas Basic - tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---gorillas-basic---tests---building_generation_tests-rb'>Platformer - Gorillas Basic - Tests - building_generation_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---the-little-probe---main-rb'>Platformer - The Little Probe - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---the-little-probe---data---level-txt'>Platformer - The Little Probe - Data - level.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---the-little-probe---data---level_lava-txt'>Platformer - The Little Probe - Data - level_lava.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---choose-your-own-adventure---decision-rb'>Rpg Narrative - Choose Your Own Adventure - decision.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---choose-your-own-adventure---main-rb'>Rpg Narrative - Choose Your Own Adventure - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---lowrez_simulator-rb'>Rpg Narrative - Return Of Serenity - lowrez_simulator.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---main-rb'>Rpg Narrative - Return Of Serenity - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---require-rb'>Rpg Narrative - Return Of Serenity - require.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline-rb'>Rpg Narrative - Return Of Serenity - storyline.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_anka-rb'>Rpg Narrative - Return Of Serenity - storyline_anka.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_blinking_light-rb'>Rpg Narrative - Return Of Serenity - storyline_blinking_light.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_day_one-rb'>Rpg Narrative - Return Of Serenity - storyline_day_one.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_final_decision-rb'>Rpg Narrative - Return Of Serenity - storyline_final_decision.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_final_message-rb'>Rpg Narrative - Return Of Serenity - storyline_final_message.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_serenity_alive-rb'>Rpg Narrative - Return Of Serenity - storyline_serenity_alive.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_serenity_bio-rb'>Rpg Narrative - Return Of Serenity - storyline_serenity_bio.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_serenity_introduction-rb'>Rpg Narrative - Return Of Serenity - storyline_serenity_introduction.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_speed_of_light-rb'>Rpg Narrative - Return Of Serenity - storyline_speed_of_light.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-roguelike---roguelike-starting-point---constants-rb'>Rpg Roguelike - Roguelike Starting Point - constants.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-roguelike---roguelike-starting-point---legend-rb'>Rpg Roguelike - Roguelike Starting Point - legend.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-roguelike---roguelike-starting-point---main-rb'>Rpg Roguelike - Roguelike Starting Point - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-roguelike---roguelike-starting-point---sprite_lookup-rb'>Rpg Roguelike - Roguelike Starting Point - sprite_lookup.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-roguelike---roguelike-line-of-sight---main-rb'>Rpg Roguelike - Roguelike Line Of Sight - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-tactical---hexagonal-grid---main-rb'>Rpg Tactical - Hexagonal Grid - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-tactical---isometric-grid---main-rb'>Rpg Tactical - Isometric Grid - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-topdown---topdown-starting-point---main-rb'>Rpg Topdown - Topdown Starting Point - main.rb</a></li></ul></ul><ul><li><a class='header-2' href='#---oss'>OSS</a></li></ul><ul><ul><li><a class='header-3' href='#----args-rb'>args.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----assert-rb'>assert.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----attr_gtk-rb'>attr_gtk.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----attr_sprite-rb'>attr_sprite.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----console-rb'>console.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----console_color-rb'>console_color.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----console_font_style-rb'>console_font_style.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----console_menu-rb'>console_menu.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----console_prompt-rb'>console_prompt.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----controller-rb'>controller.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----controller/config-rb'>controller/config.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----controller/keys-rb'>controller/keys.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----directional_input_helper_methods-rb'>directional_input_helper_methods.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----easing-rb'>easing.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----entity-rb'>entity.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----geometry-rb'>geometry.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----grid-rb'>grid.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----inputs-rb'>inputs.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----ios_wizard-rb'>ios_wizard.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----itch_wizard-rb'>itch_wizard.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----layout-rb'>layout.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----log-rb'>log.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----metadata-rb'>metadata.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----numeric-rb'>numeric.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----remote_hotload_client-rb'>remote_hotload_client.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----runtime/autocomplete-rb'>runtime/autocomplete.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----runtime/benchmark-rb'>runtime/benchmark.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----runtime/draw-rb'>runtime/draw.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----runtime/framerate-rb'>runtime/framerate.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----runtime/framerate_diagnostics-rb'>runtime/framerate_diagnostics.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----runtime/hotload-rb'>runtime/hotload.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----string-rb'>string.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----tests-rb'>tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----trace-rb'>trace.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----wizards-rb'>wizards.rb</a></li></ul></ul></ul> </div>
+<ul><li><a class='header-2' href='#---samples'>Samples</a></li></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---beginner-ruby-primer---automation-rb'>Learn Ruby Optional - Beginner Ruby Primer - automation.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---beginner-ruby-primer---main-rb'>Learn Ruby Optional - Beginner Ruby Primer - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---printing-txt'>Learn Ruby Optional - Intermediate Ruby Primer - printing.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---strings-txt'>Learn Ruby Optional - Intermediate Ruby Primer - strings.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---numbers-txt'>Learn Ruby Optional - Intermediate Ruby Primer - numbers.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---booleans-txt'>Learn Ruby Optional - Intermediate Ruby Primer - booleans.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---conditionals-txt'>Learn Ruby Optional - Intermediate Ruby Primer - conditionals.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---looping-txt'>Learn Ruby Optional - Intermediate Ruby Primer - looping.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---functions-txt'>Learn Ruby Optional - Intermediate Ruby Primer - functions.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---arrays-txt'>Learn Ruby Optional - Intermediate Ruby Primer - arrays.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----learn-ruby-optional---intermediate-ruby-primer---main-rb'>Learn Ruby Optional - Intermediate Ruby Primer - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-basics---labels---main-rb'>Rendering Basics - Labels - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-basics---lines---main-rb'>Rendering Basics - Lines - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-basics---solids-borders---main-rb'>Rendering Basics - Solids Borders - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-basics---sprites---main-rb'>Rendering Basics - Sprites - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-basics---sounds---main-rb'>Rendering Basics - Sounds - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----input-basics---keyboard---main-rb'>Input Basics - Keyboard - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----input-basics---moving-a-sprite---main-rb'>Input Basics - Moving A Sprite - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----input-basics---mouse---main-rb'>Input Basics - Mouse - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----input-basics---mouse-point-to-rect---main-rb'>Input Basics - Mouse Point To Rect - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----input-basics---mouse-rect-to-rect---main-rb'>Input Basics - Mouse Rect To Rect - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----input-basics---controller---main-rb'>Input Basics - Controller - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----input-basics---touch---main-rb'>Input Basics - Touch - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-sprites---animation-using-separate-pngs---main-rb'>Rendering Sprites - Animation Using Separate Pngs - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-sprites---animation-using-sprite-sheet---main-rb'>Rendering Sprites - Animation Using Sprite Sheet - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-sprites---animation-states---main-rb'>Rendering Sprites - Animation States - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rendering-sprites---color-and-rotation---main-rb'>Rendering Sprites - Color And Rotation - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---simple---main-rb'>Physics And Collisions - Simple - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---moving-objects---main-rb'>Physics And Collisions - Moving Objects - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---entities---main-rb'>Physics And Collisions - Entities - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---box-collision---main-rb'>Physics And Collisions - Box Collision - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---box-collision-2---main-rb'>Physics And Collisions - Box Collision 2 - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---box-collision-3---main-rb'>Physics And Collisions - Box Collision 3 - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---jump-physics---main-rb'>Physics And Collisions - Jump Physics - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---bouncing-on-collision---ball-rb'>Physics And Collisions - Bouncing On Collision - ball.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---bouncing-on-collision---block-rb'>Physics And Collisions - Bouncing On Collision - block.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---bouncing-on-collision---cannon-rb'>Physics And Collisions - Bouncing On Collision - cannon.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---bouncing-on-collision---main-rb'>Physics And Collisions - Bouncing On Collision - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---bouncing-on-collision---peg-rb'>Physics And Collisions - Bouncing On Collision - peg.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---bouncing-on-collision---vector2d-rb'>Physics And Collisions - Bouncing On Collision - vector2d.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---ball-rb'>Physics And Collisions - Arbitrary Collision - ball.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---blocks-rb'>Physics And Collisions - Arbitrary Collision - blocks.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---linear_collider-rb'>Physics And Collisions - Arbitrary Collision - linear_collider.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---main-rb'>Physics And Collisions - Arbitrary Collision - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---paddle-rb'>Physics And Collisions - Arbitrary Collision - paddle.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---rectangle-rb'>Physics And Collisions - Arbitrary Collision - rectangle.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---square_collider-rb'>Physics And Collisions - Arbitrary Collision - square_collider.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---arbitrary-collision---vector2d-rb'>Physics And Collisions - Arbitrary Collision - vector2d.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---collision-with-object-removal---ball-rb'>Physics And Collisions - Collision With Object Removal - ball.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---collision-with-object-removal---linear_collider-rb'>Physics And Collisions - Collision With Object Removal - linear_collider.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---collision-with-object-removal---main-rb'>Physics And Collisions - Collision With Object Removal - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---collision-with-object-removal---paddle-rb'>Physics And Collisions - Collision With Object Removal - paddle.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---collision-with-object-removal---tests-rb'>Physics And Collisions - Collision With Object Removal - tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----physics-and-collisions---collision-with-object-removal---vector2d-rb'>Physics And Collisions - Collision With Object Removal - vector2d.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----mouse---mouse-click---main-rb'>Mouse - Mouse Click - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----mouse---mouse-move---main-rb'>Mouse - Mouse Move - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----mouse---mouse-move-paint-app---main-rb'>Mouse - Mouse Move Paint App - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----mouse---coordinate-systems---main-rb'>Mouse - Coordinate Systems - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----save-load---save-load-game---main-rb'>Save Load - Save Load Game - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-audio---audio-mixer---main-rb'>Advanced Audio - Audio Mixer - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-audio---audio-mixer---server_ip_address-txt'>Advanced Audio - Audio Mixer - server_ip_address.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-audio---audio-mixer---metadata---ios_metadata-txt'>Advanced Audio - Audio Mixer - Metadata - ios_metadata.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-audio---sound-synthesis---main-rb'>Advanced Audio - Sound Synthesis - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---simple-render-targets---main-rb'>Advanced Rendering - Simple Render Targets - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---render-targets-with-tile-manipulation---main-rb'>Advanced Rendering - Render Targets With Tile Manipulation - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---render-target-viewports---main-rb'>Advanced Rendering - Render Target Viewports - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---render-primitive-hierarchies---main-rb'>Advanced Rendering - Render Primitive Hierarchies - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---render-primitives-as-hash---main-rb'>Advanced Rendering - Render Primitives As Hash - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---pixel-arrays---main-rb'>Advanced Rendering - Pixel Arrays - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---simple-camera---main-rb'>Advanced Rendering - Simple Camera - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---splitscreen-camera---main-rb'>Advanced Rendering - Splitscreen Camera - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---z-targeting-camera---main-rb'>Advanced Rendering - Z Targeting Camera - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---blend-modes---main-rb'>Advanced Rendering - Blend Modes - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-rendering---render-target-noclear---main-rb'>Advanced Rendering - Render Target Noclear - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----tweening-lerping-easing-functions---easing-functions---main-rb'>Tweening Lerping Easing Functions - Easing Functions - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----tweening-lerping-easing-functions---cubic-bezier---main-rb'>Tweening Lerping Easing Functions - Cubic Bezier - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----tweening-lerping-easing-functions---easing-using-spline---main-rb'>Tweening Lerping Easing Functions - Easing Using Spline - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----tweening-lerping-easing-functions---parametric-enemy-movement---main-rb'>Tweening Lerping Easing Functions - Parametric Enemy Movement - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----performance---sprites-as-hash---main-rb'>Performance - Sprites As Hash - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----performance---sprites-as-entities---main-rb'>Performance - Sprites As Entities - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----performance---sprites-as-strict-entities---main-rb'>Performance - Sprites As Strict Entities - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----performance---sprites-as-classes---main-rb'>Performance - Sprites As Classes - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----performance---static-sprites-as-classes---main-rb'>Performance - Static Sprites As Classes - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----performance---static-sprites-as-classes-with-custom-drawing---main-rb'>Performance - Static Sprites As Classes With Custom Drawing - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----performance---collision-limits---main-rb'>Performance - Collision Limits - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---trace-debugging---main-rb'>Advanced Debugging - Trace Debugging - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---trace-debugging-classes---main-rb'>Advanced Debugging - Trace Debugging Classes - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---benchmark_api_tests-rb'>Advanced Debugging - Unit Tests - benchmark_api_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---exception_raising_tests-rb'>Advanced Debugging - Unit Tests - exception_raising_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---fn_tests-rb'>Advanced Debugging - Unit Tests - fn_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---gen_docs-rb'>Advanced Debugging - Unit Tests - gen_docs.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---geometry_tests-rb'>Advanced Debugging - Unit Tests - geometry_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---http_tests-rb'>Advanced Debugging - Unit Tests - http_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---nil_coercion_tests-rb'>Advanced Debugging - Unit Tests - nil_coercion_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---object_to_primitive_tests-rb'>Advanced Debugging - Unit Tests - object_to_primitive_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---parsing_tests-rb'>Advanced Debugging - Unit Tests - parsing_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---pretty_format_tests-rb'>Advanced Debugging - Unit Tests - pretty_format_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---require_tests-rb'>Advanced Debugging - Unit Tests - require_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---serialize_deserialize_tests-rb'>Advanced Debugging - Unit Tests - serialize_deserialize_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---state_serialization_experimental_tests-rb'>Advanced Debugging - Unit Tests - state_serialization_experimental_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----advanced-debugging---unit-tests---suggest_autocompletion_tests-rb'>Advanced Debugging - Unit Tests - suggest_autocompletion_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----http---retrieve-images---main-rb'>Http - Retrieve Images - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----http---web-server---main-rb'>Http - Web Server - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----c-extensions---basics---main-rb'>C Extensions - Basics - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----c-extensions---intermediate---main-rb'>C Extensions - Intermediate - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----c-extensions---native-pixel-arrays---main-rb'>C Extensions - Native Pixel Arrays - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---breadth-first-search---main-rb'>Path Finding Algorithms - Breadth First Search - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---detailed-breadth-first-search---main-rb'>Path Finding Algorithms - Detailed Breadth First Search - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---breadcrumbs---main-rb'>Path Finding Algorithms - Breadcrumbs - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---early-exit---main-rb'>Path Finding Algorithms - Early Exit - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---dijkstra---main-rb'>Path Finding Algorithms - Dijkstra - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---heuristic---main-rb'>Path Finding Algorithms - Heuristic - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---heuristic-with-walls---main-rb'>Path Finding Algorithms - Heuristic With Walls - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---a-star---main-rb'>Path Finding Algorithms - A Star - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----path-finding-algorithms---tower-defense---main-rb'>Path Finding Algorithms - Tower Defense - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----3d---3d-cube---main-rb'>3d - 3d Cube - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----3d---wireframe---main-rb'>3d - Wireframe - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----3d---wireframe---data---what-is-this-txt'>3d - Wireframe - Data - what-is-this.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade---bullet-hell---main-rb'>Arcade - Bullet Hell - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade---dueling-starships---main-rb'>Arcade - Dueling Starships - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade/flappy-dragon/credits-txt'>arcade/flappy dragon/credits.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade/flappy-dragon/main-rb'>arcade/flappy dragon/main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade---pong---main-rb'>Arcade - Pong - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade---snakemoji---main-rb'>Arcade - Snakemoji - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade---solar-system---main-rb'>Arcade - Solar System - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade---sound-golf---main-rb'>Arcade - Sound Golf - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----arcade---twinstick---main-rb'>Arcade - Twinstick - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----crafting---craft-game-starting-point---main-rb'>Crafting - Craft Game Starting Point - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----crafting---farming-game-starting-point---main-rb'>Crafting - Farming Game Starting Point - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----crafting---farming-game-starting-point---repl-rb'>Crafting - Farming Game Starting Point - repl.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----crafting---farming-game-starting-point---tests-rb'>Crafting - Farming Game Starting Point - tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----dev-tools---add-buttons-to-console---main-rb'>Dev Tools - Add Buttons To Console - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----dev-tools---animation-creator-starting-point---main-rb'>Dev Tools - Animation Creator Starting Point - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----dev-tools---tile-editor-starting-point---main-rb'>Dev Tools - Tile Editor Starting Point - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----dungeon-crawl---classics-jam---main-rb'>Dungeon Crawl - Classics Jam - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----fighting---special-move-inputs---main-rb'>Fighting - Special Move Inputs - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----lowrez---nokia-3310---main-rb'>Lowrez - Nokia 3310 - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----lowrez---nokia-3310---nokia-rb'>Lowrez - Nokia 3310 - nokia.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----lowrez---resolution-64x64---lowrez-rb'>Lowrez - Resolution 64x64 - lowrez.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----lowrez---resolution-64x64---main-rb'>Lowrez - Resolution 64x64 - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---clepto-frog---main-rb'>Platformer - Clepto Frog - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---clepto-frog---map-rb'>Platformer - Clepto Frog - map.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---gorillas-basic---credits-txt'>Platformer - Gorillas Basic - credits.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---gorillas-basic---main-rb'>Platformer - Gorillas Basic - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---gorillas-basic---tests-rb'>Platformer - Gorillas Basic - tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---gorillas-basic---tests---building_generation_tests-rb'>Platformer - Gorillas Basic - Tests - building_generation_tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---the-little-probe---main-rb'>Platformer - The Little Probe - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---the-little-probe---data---level-txt'>Platformer - The Little Probe - Data - level.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----platformer---the-little-probe---data---level_lava-txt'>Platformer - The Little Probe - Data - level_lava.txt</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---choose-your-own-adventure---decision-rb'>Rpg Narrative - Choose Your Own Adventure - decision.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---choose-your-own-adventure---main-rb'>Rpg Narrative - Choose Your Own Adventure - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---lowrez_simulator-rb'>Rpg Narrative - Return Of Serenity - lowrez_simulator.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---main-rb'>Rpg Narrative - Return Of Serenity - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---require-rb'>Rpg Narrative - Return Of Serenity - require.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline-rb'>Rpg Narrative - Return Of Serenity - storyline.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_anka-rb'>Rpg Narrative - Return Of Serenity - storyline_anka.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_blinking_light-rb'>Rpg Narrative - Return Of Serenity - storyline_blinking_light.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_day_one-rb'>Rpg Narrative - Return Of Serenity - storyline_day_one.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_final_decision-rb'>Rpg Narrative - Return Of Serenity - storyline_final_decision.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_final_message-rb'>Rpg Narrative - Return Of Serenity - storyline_final_message.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_serenity_alive-rb'>Rpg Narrative - Return Of Serenity - storyline_serenity_alive.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_serenity_bio-rb'>Rpg Narrative - Return Of Serenity - storyline_serenity_bio.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_serenity_introduction-rb'>Rpg Narrative - Return Of Serenity - storyline_serenity_introduction.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-narrative---return-of-serenity---storyline_speed_of_light-rb'>Rpg Narrative - Return Of Serenity - storyline_speed_of_light.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-roguelike---roguelike-starting-point---constants-rb'>Rpg Roguelike - Roguelike Starting Point - constants.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-roguelike---roguelike-starting-point---legend-rb'>Rpg Roguelike - Roguelike Starting Point - legend.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-roguelike---roguelike-starting-point---main-rb'>Rpg Roguelike - Roguelike Starting Point - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-roguelike---roguelike-starting-point---sprite_lookup-rb'>Rpg Roguelike - Roguelike Starting Point - sprite_lookup.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-roguelike---roguelike-line-of-sight---main-rb'>Rpg Roguelike - Roguelike Line Of Sight - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-tactical---hexagonal-grid---main-rb'>Rpg Tactical - Hexagonal Grid - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-tactical---isometric-grid---main-rb'>Rpg Tactical - Isometric Grid - main.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----rpg-topdown---topdown-starting-point---main-rb'>Rpg Topdown - Topdown Starting Point - main.rb</a></li></ul></ul><ul><li><a class='header-2' href='#---oss'>OSS</a></li></ul><ul><ul><li><a class='header-3' href='#----args-rb'>args.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----assert-rb'>assert.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----attr_gtk-rb'>attr_gtk.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----attr_sprite-rb'>attr_sprite.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----console-rb'>console.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----console_color-rb'>console_color.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----console_font_style-rb'>console_font_style.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----console_menu-rb'>console_menu.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----console_prompt-rb'>console_prompt.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----controller-rb'>controller.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----controller/config-rb'>controller/config.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----controller/keys-rb'>controller/keys.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----directional_input_helper_methods-rb'>directional_input_helper_methods.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----easing-rb'>easing.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----entity-rb'>entity.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----geometry-rb'>geometry.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----grid-rb'>grid.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----inputs-rb'>inputs.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----ios_wizard-rb'>ios_wizard.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----itch_wizard-rb'>itch_wizard.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----layout-rb'>layout.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----log-rb'>log.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----metadata-rb'>metadata.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----numeric-rb'>numeric.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----remote_hotload_client-rb'>remote_hotload_client.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----runtime/autocomplete-rb'>runtime/autocomplete.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----runtime/benchmark-rb'>runtime/benchmark.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----runtime/draw-rb'>runtime/draw.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----runtime/framerate-rb'>runtime/framerate.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----runtime/framerate_diagnostics-rb'>runtime/framerate_diagnostics.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----runtime/hotload-rb'>runtime/hotload.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----string-rb'>string.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----tests-rb'>tests.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----trace-rb'>trace.rb</a></li></ul></ul><ul><ul><li><a class='header-3' href='#----wizards-rb'>wizards.rb</a></li></ul></ul></ul> </div>
<div id='content'>
<h1 id='--dragonruby-game-toolkit-live-docs'>DragonRuby Game Toolkit Live Docs</h1>
<p>
@@ -6736,7 +6736,7 @@ class Game
def calc_below
return unless player.dy <= 0
- tiles_below = find_tiles { |t| t.rect.top <= player.y }
+ tiles_below = find_tiles { |t| t.rect.top <= player.prev_rect.y }
collision = find_colliding_tile tiles_below, (player.rect.merge y: player.next_rect.y)
return unless collision
if collision.neighbors.b == :none && player.jumped_down_at.elapsed_time < 10
@@ -6767,7 +6767,7 @@ class Game
def calc_above
return unless player.dy > 0
- tiles_above = find_tiles { |t| t.rect.y >= player.y }
+ tiles_above = find_tiles { |t| t.rect.y >= player.prev_rect.y }
collision = find_colliding_tile tiles_above, (player.rect.merge y: player.next_rect.y)
return unless collision
return if collision.neighbors.t == :none
@@ -13610,6 +13610,57 @@ def tick args
end
</code></pre>
+<h3 id='----advanced-rendering---render-target-noclear---main-rb'>Advanced Rendering - Render Target Noclear - main.rb</h3>
+<pre><code class="language-ruby"># ./samples/07_advanced_rendering/11_render_target_noclear/app/main.rb
+def tick args
+ args.state.x ||= 500
+ args.state.y ||= 350
+ args.state.xinc ||= 7
+ args.state.yinc ||= 7
+ args.state.bgcolor ||= 1
+ args.state.bginc ||= 1
+
+ # clear the render target on the first tick, and then never again. Draw
+ # another box to it every tick, accumulating over time.
+ clear_target = (args.state.tick_count == 0) || (args.inputs.keyboard.key_down.space)
+ args.render_target(:accumulation).background_color = [ 0, 0, 0, 0 ];
+ args.render_target(:accumulation).clear_before_render = clear_target
+ args.render_target(:accumulation).solids << [args.state.x, args.state.y, 25, 25, 255, 0, 0, 255];
+ args.state.x += args.state.xinc
+ args.state.y += args.state.yinc
+ args.state.bgcolor += args.state.bginc
+
+ # animation upkeep...change where we draw the next box and what color the
+ # window background will be.
+ if args.state.xinc > 0 && args.state.x >= 1280
+ args.state.xinc = -7
+ elsif args.state.xinc < 0 && args.state.x < 0
+ args.state.xinc = 7
+ end
+
+ if args.state.yinc > 0 && args.state.y >= 720
+ args.state.yinc = -7
+ elsif args.state.yinc < 0 && args.state.y < 0
+ args.state.yinc = 7
+ end
+
+ if args.state.bginc > 0 && args.state.bgcolor >= 255
+ args.state.bginc = -1
+ elsif args.state.bginc < 0 && args.state.bgcolor <= 0
+ args.state.bginc = 1
+ end
+
+ # clear the screen to a shade of blue and draw the render target, which
+ # is not clearing every frame, on top of it. Note that you can NOT opt to
+ # skip clearing the screen, only render targets. The screen clears every
+ # frame; double-buffering would prevent correct updates between frames.
+ args.outputs.background_color = [ 0, 0, args.state.bgcolor, 255 ]
+ args.outputs.sprites << [ 0, 0, 1280, 720, :accumulation ]
+end
+
+$gtk.reset
+
+</code></pre>
<h3 id='----tweening-lerping-easing-functions---easing-functions---main-rb'>Tweening Lerping Easing Functions - Easing Functions - main.rb</h3>
<pre><code class="language-ruby"># ./samples/08_tweening_lerping_easing_functions/01_easing_functions/app/main.rb
def tick args
@@ -37215,6 +37266,7 @@ end
</code></pre>
<h3 id='----attr_sprite-rb'>attr_sprite.rb</h3>
<pre><code class="language-ruby"># ./dragon/attr_sprite.rb
+# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# attr_sprite.rb has been released under MIT (*only this file*).
@@ -37276,6 +37328,7 @@ end
</code></pre>
<h3 id='----console-rb'>console.rb</h3>
<pre><code class="language-ruby"># ./dragon/console.rb
+# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# console.rb has been released under MIT (*only this file*).
@@ -38089,6 +38142,7 @@ end
</code></pre>
<h3 id='----console_color-rb'>console_color.rb</h3>
<pre><code class="language-ruby"># ./dragon/console_color.rb
+# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# console_color.rb has been released under MIT (*only this file*).
@@ -38127,6 +38181,7 @@ end
</code></pre>
<h3 id='----console_font_style-rb'>console_font_style.rb</h3>
<pre><code class="language-ruby"># ./dragon/console_font_style.rb
+# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# console_font_style.rb has been released under MIT (*only this file*).
@@ -38171,6 +38226,7 @@ end
</code></pre>
<h3 id='----console_menu-rb'>console_menu.rb</h3>
<pre><code class="language-ruby"># ./dragon/console_menu.rb
+# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# console_menu.rb has been released under MIT (*only this file*).
@@ -38335,6 +38391,7 @@ end
</code></pre>
<h3 id='----console_prompt-rb'>console_prompt.rb</h3>
<pre><code class="language-ruby"># ./dragon/console_prompt.rb
+# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# console_prompt.rb has been released under MIT (*only this file*).
@@ -40962,11 +41019,13 @@ end
</code></pre>
<h3 id='----ios_wizard-rb'>ios_wizard.rb</h3>
<pre><code class="language-ruby"># ./dragon/ios_wizard.rb
-# Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński
+# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# ios_wizard.rb has been released under MIT (*only this file*).
+# Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński
+
class IOSWizard < Wizard
def initialize
@doctor_executed_at = 0
@@ -42073,6 +42132,7 @@ end
</code></pre>
<h3 id='----itch_wizard-rb'>itch_wizard.rb</h3>
<pre><code class="language-ruby"># ./dragon/itch_wizard.rb
+# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# itch_wizard.rb has been released under MIT (*only this file*).
@@ -42333,6 +42393,7 @@ end
</code></pre>
<h3 id='----layout-rb'>layout.rb</h3>
<pre><code class="language-ruby"># ./dragon/layout.rb
+# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# layout.rb has been released under MIT (*only this file*).
@@ -43252,11 +43313,13 @@ end
</code></pre>
<h3 id='----metadata-rb'>metadata.rb</h3>
<pre><code class="language-ruby"># ./dragon/metadata.rb
-# Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński
+# coding: utf-8
# Copyright 2021 DragonRuby LLC
# MIT License
# metadata.rb has been released under MIT (*only this file*).
+# Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński
+
module Metadata
def metadata_file_path
"metadata/game_metadata.txt"
@@ -44316,6 +44379,7 @@ end
</code></pre>
<h3 id='----runtime/autocomplete-rb'>runtime/autocomplete.rb</h3>
<pre><code class="language-ruby"># ./dragon/runtime/autocomplete.rb
+# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# autocomplete.rb has been released under MIT (*only this file*).
@@ -44470,6 +44534,7 @@ end # end GTK
</code></pre>
<h3 id='----runtime/benchmark-rb'>runtime/benchmark.rb</h3>
<pre><code class="language-ruby"># ./dragon/runtime/benchmark.rb
+# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# benchmark.rb has been released under MIT (*only this file*).
@@ -44585,6 +44650,7 @@ end
</code></pre>
<h3 id='----runtime/draw-rb'>runtime/draw.rb</h3>
<pre><code class="language-ruby"># ./dragon/runtime/draw.rb
+# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# draw.rb has been released under MIT (*only this file*).
@@ -44748,6 +44814,7 @@ end
</code></pre>
<h3 id='----runtime/framerate-rb'>runtime/framerate.rb</h3>
<pre><code class="language-ruby"># ./dragon/runtime/framerate.rb
+# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# framerate.rb has been released under MIT (*only this file*).
@@ -44835,6 +44902,7 @@ end # end module GTK
</code></pre>
<h3 id='----runtime/framerate_diagnostics-rb'>runtime/framerate_diagnostics.rb</h3>
<pre><code class="language-ruby"># ./dragon/runtime/framerate_diagnostics.rb
+# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# framerate_diagnostics.rb has been released under MIT (*only this file*).
@@ -45655,6 +45723,7 @@ end
</code></pre>
<h3 id='----wizards-rb'>wizards.rb</h3>
<pre><code class="language-ruby"># ./dragon/wizards.rb
+# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# wizards.rb has been released under MIT (*only this file*).
diff --git a/docs/docs.txt b/docs/docs.txt
index c07fbcd..d6f5def 100644
--- a/docs/docs.txt
+++ b/docs/docs.txt
@@ -6800,7 +6800,7 @@ Follows is a source code listing for all files that have been open sourced. This
def calc_below
return unless player.dy <= 0
- tiles_below = find_tiles { |t| t.rect.top <= player.y }
+ tiles_below = find_tiles { |t| t.rect.top <= player.prev_rect.y }
collision = find_colliding_tile tiles_below, (player.rect.merge y: player.next_rect.y)
return unless collision
if collision.neighbors.b == :none && player.jumped_down_at.elapsed_time < 10
@@ -6831,7 +6831,7 @@ Follows is a source code listing for all files that have been open sourced. This
def calc_above
return unless player.dy > 0
- tiles_above = find_tiles { |t| t.rect.y >= player.y }
+ tiles_above = find_tiles { |t| t.rect.y >= player.prev_rect.y }
collision = find_colliding_tile tiles_above, (player.rect.merge y: player.next_rect.y)
return unless collision
return if collision.neighbors.t == :none
@@ -13755,6 +13755,59 @@ Follows is a source code listing for all files that have been open sourced. This
#+end_src
+*** Advanced Rendering - Render Target Noclear - main.rb
+#+begin_src ruby
+ # ./samples/07_advanced_rendering/11_render_target_noclear/app/main.rb
+ def tick args
+ args.state.x ||= 500
+ args.state.y ||= 350
+ args.state.xinc ||= 7
+ args.state.yinc ||= 7
+ args.state.bgcolor ||= 1
+ args.state.bginc ||= 1
+
+ # clear the render target on the first tick, and then never again. Draw
+ # another box to it every tick, accumulating over time.
+ clear_target = (args.state.tick_count == 0) || (args.inputs.keyboard.key_down.space)
+ args.render_target(:accumulation).background_color = [ 0, 0, 0, 0 ];
+ args.render_target(:accumulation).clear_before_render = clear_target
+ args.render_target(:accumulation).solids << [args.state.x, args.state.y, 25, 25, 255, 0, 0, 255];
+ args.state.x += args.state.xinc
+ args.state.y += args.state.yinc
+ args.state.bgcolor += args.state.bginc
+
+ # animation upkeep...change where we draw the next box and what color the
+ # window background will be.
+ if args.state.xinc > 0 && args.state.x >= 1280
+ args.state.xinc = -7
+ elsif args.state.xinc < 0 && args.state.x < 0
+ args.state.xinc = 7
+ end
+
+ if args.state.yinc > 0 && args.state.y >= 720
+ args.state.yinc = -7
+ elsif args.state.yinc < 0 && args.state.y < 0
+ args.state.yinc = 7
+ end
+
+ if args.state.bginc > 0 && args.state.bgcolor >= 255
+ args.state.bginc = -1
+ elsif args.state.bginc < 0 && args.state.bgcolor <= 0
+ args.state.bginc = 1
+ end
+
+ # clear the screen to a shade of blue and draw the render target, which
+ # is not clearing every frame, on top of it. Note that you can NOT opt to
+ # skip clearing the screen, only render targets. The screen clears every
+ # frame; double-buffering would prevent correct updates between frames.
+ args.outputs.background_color = [ 0, 0, args.state.bgcolor, 255 ]
+ args.outputs.sprites << [ 0, 0, 1280, 720, :accumulation ]
+ end
+
+ $gtk.reset
+
+#+end_src
+
*** Tweening Lerping Easing Functions - Easing Functions - main.rb
#+begin_src ruby
# ./samples/08_tweening_lerping_easing_functions/01_easing_functions/app/main.rb
@@ -37561,6 +37614,7 @@ Follows is a source code listing for all files that have been open sourced. This
*** attr_sprite.rb
#+begin_src ruby
# ./dragon/attr_sprite.rb
+ # coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# attr_sprite.rb has been released under MIT (*only this file*).
@@ -37624,6 +37678,7 @@ Follows is a source code listing for all files that have been open sourced. This
*** console.rb
#+begin_src ruby
# ./dragon/console.rb
+ # coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# console.rb has been released under MIT (*only this file*).
@@ -38439,6 +38494,7 @@ Follows is a source code listing for all files that have been open sourced. This
*** console_color.rb
#+begin_src ruby
# ./dragon/console_color.rb
+ # coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# console_color.rb has been released under MIT (*only this file*).
@@ -38479,6 +38535,7 @@ Follows is a source code listing for all files that have been open sourced. This
*** console_font_style.rb
#+begin_src ruby
# ./dragon/console_font_style.rb
+ # coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# console_font_style.rb has been released under MIT (*only this file*).
@@ -38525,6 +38582,7 @@ Follows is a source code listing for all files that have been open sourced. This
*** console_menu.rb
#+begin_src ruby
# ./dragon/console_menu.rb
+ # coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# console_menu.rb has been released under MIT (*only this file*).
@@ -38691,6 +38749,7 @@ Follows is a source code listing for all files that have been open sourced. This
*** console_prompt.rb
#+begin_src ruby
# ./dragon/console_prompt.rb
+ # coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# console_prompt.rb has been released under MIT (*only this file*).
@@ -41338,11 +41397,13 @@ Follows is a source code listing for all files that have been open sourced. This
*** ios_wizard.rb
#+begin_src ruby
# ./dragon/ios_wizard.rb
- # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński
+ # coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# ios_wizard.rb has been released under MIT (*only this file*).
+ # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński
+
class IOSWizard < Wizard
def initialize
@doctor_executed_at = 0
@@ -42451,6 +42512,7 @@ Follows is a source code listing for all files that have been open sourced. This
*** itch_wizard.rb
#+begin_src ruby
# ./dragon/itch_wizard.rb
+ # coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# itch_wizard.rb has been released under MIT (*only this file*).
@@ -42713,6 +42775,7 @@ Follows is a source code listing for all files that have been open sourced. This
*** layout.rb
#+begin_src ruby
# ./dragon/layout.rb
+ # coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# layout.rb has been released under MIT (*only this file*).
@@ -43636,11 +43699,13 @@ Follows is a source code listing for all files that have been open sourced. This
*** metadata.rb
#+begin_src ruby
# ./dragon/metadata.rb
- # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński
+ # coding: utf-8
# Copyright 2021 DragonRuby LLC
# MIT License
# metadata.rb has been released under MIT (*only this file*).
+ # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński
+
module Metadata
def metadata_file_path
"metadata/game_metadata.txt"
@@ -44706,6 +44771,7 @@ Follows is a source code listing for all files that have been open sourced. This
*** runtime/autocomplete.rb
#+begin_src ruby
# ./dragon/runtime/autocomplete.rb
+ # coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# autocomplete.rb has been released under MIT (*only this file*).
@@ -44862,6 +44928,7 @@ Follows is a source code listing for all files that have been open sourced. This
*** runtime/benchmark.rb
#+begin_src ruby
# ./dragon/runtime/benchmark.rb
+ # coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# benchmark.rb has been released under MIT (*only this file*).
@@ -44979,6 +45046,7 @@ Follows is a source code listing for all files that have been open sourced. This
*** runtime/draw.rb
#+begin_src ruby
# ./dragon/runtime/draw.rb
+ # coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# draw.rb has been released under MIT (*only this file*).
@@ -45144,6 +45212,7 @@ Follows is a source code listing for all files that have been open sourced. This
*** runtime/framerate.rb
#+begin_src ruby
# ./dragon/runtime/framerate.rb
+ # coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# framerate.rb has been released under MIT (*only this file*).
@@ -45233,6 +45302,7 @@ Follows is a source code listing for all files that have been open sourced. This
*** runtime/framerate_diagnostics.rb
#+begin_src ruby
# ./dragon/runtime/framerate_diagnostics.rb
+ # coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# framerate_diagnostics.rb has been released under MIT (*only this file*).
@@ -46063,6 +46133,7 @@ Follows is a source code listing for all files that have been open sourced. This
*** wizards.rb
#+begin_src ruby
# ./dragon/wizards.rb
+ # coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# wizards.rb has been released under MIT (*only this file*).
diff --git a/docs/parse_log.txt b/docs/parse_log.txt
index 4e43983..07e163d 100644
--- a/docs/parse_log.txt
+++ b/docs/parse_log.txt
@@ -25899,10 +25899,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
return unless player.dy <= 0
-** Processing line: ~ tiles_below = find_tiles { |t| t.rect.top <= player.y }~
+** Processing line: ~ tiles_below = find_tiles { |t| t.rect.top <= player.prev_rect.y }~
- Inside source: true
*** True Line Result
- tiles_below = find_tiles { |t| t.rect.top <= player.y }
+ tiles_below = find_tiles { |t| t.rect.top <= player.prev_rect.y }
** Processing line: ~ collision = find_colliding_tile tiles_below, (player.rect.merge y: player.next_rect.y)~
- Inside source: true
*** True Line Result
@@ -26023,10 +26023,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
return unless player.dy > 0
-** Processing line: ~ tiles_above = find_tiles { |t| t.rect.y >= player.y }~
+** Processing line: ~ tiles_above = find_tiles { |t| t.rect.y >= player.prev_rect.y }~
- Inside source: true
*** True Line Result
- tiles_above = find_tiles { |t| t.rect.y >= player.y }
+ tiles_above = find_tiles { |t| t.rect.y >= player.prev_rect.y }
** Processing line: ~ collision = find_colliding_tile tiles_above, (player.rect.merge y: player.next_rect.y)~
- Inside source: true
*** True Line Result
@@ -53879,6 +53879,222 @@ Follows is a source code listing for all files that have been open sourced. This
- End of paragraph detected.
*** True Line Result
+** Processing line: ~*** Advanced Rendering - Render Target Noclear - main.rb~
+- Header detected.
+*** True Line Result
+
+*** True Line Result
+*** Advanced Rendering - Render Target Noclear - main.rb
+** Processing line: ~#+begin_src ruby~
+- Line was identified as the beginning of a code block.
+*** True Line Result
+
+*** True Line Result
+#+begin_src ruby
+** Processing line: ~ # ./samples/07_advanced_rendering/11_render_target_noclear/app/main.rb~
+- Inside source: true
+*** True Line Result
+ # ./samples/07_advanced_rendering/11_render_target_noclear/app/main.rb
+** Processing line: ~ def tick args~
+- Inside source: true
+*** True Line Result
+ def tick args
+** Processing line: ~ args.state.x ||= 500~
+- Inside source: true
+*** True Line Result
+ args.state.x ||= 500
+** Processing line: ~ args.state.y ||= 350~
+- Inside source: true
+*** True Line Result
+ args.state.y ||= 350
+** Processing line: ~ args.state.xinc ||= 7~
+- Inside source: true
+*** True Line Result
+ args.state.xinc ||= 7
+** Processing line: ~ args.state.yinc ||= 7~
+- Inside source: true
+*** True Line Result
+ args.state.yinc ||= 7
+** Processing line: ~ args.state.bgcolor ||= 1~
+- Inside source: true
+*** True Line Result
+ args.state.bgcolor ||= 1
+** Processing line: ~ args.state.bginc ||= 1~
+- Inside source: true
+*** True Line Result
+ args.state.bginc ||= 1
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # clear the render target on the first tick, and then never again. Draw~
+- Inside source: true
+*** True Line Result
+ # clear the render target on the first tick, and then never again. Draw
+** Processing line: ~ # another box to it every tick, accumulating over time.~
+- Inside source: true
+*** True Line Result
+ # another box to it every tick, accumulating over time.
+** Processing line: ~ clear_target = (args.state.tick_count == 0) || (args.inputs.keyboard.key_down.space)~
+- Inside source: true
+*** True Line Result
+ clear_target = (args.state.tick_count == 0) || (args.inputs.keyboard.key_down.space)
+** Processing line: ~ args.render_target(:accumulation).background_color = [ 0, 0, 0, 0 ];~
+- Inside source: true
+*** True Line Result
+ args.render_target(:accumulation).background_color = [ 0, 0, 0, 0 ];
+** Processing line: ~ args.render_target(:accumulation).clear_before_render = clear_target~
+- Inside source: true
+*** True Line Result
+ args.render_target(:accumulation).clear_before_render = clear_target
+** Processing line: ~ args.render_target(:accumulation).solids << [args.state.x, args.state.y, 25, 25, 255, 0, 0, 255];~
+- Inside source: true
+*** True Line Result
+ args.render_target(:accumulation).solids << [args.state.x, args.state.y, 25, 25, 255, 0, 0, 255];
+** Processing line: ~ args.state.x += args.state.xinc~
+- Inside source: true
+*** True Line Result
+ args.state.x += args.state.xinc
+** Processing line: ~ args.state.y += args.state.yinc~
+- Inside source: true
+*** True Line Result
+ args.state.y += args.state.yinc
+** Processing line: ~ args.state.bgcolor += args.state.bginc~
+- Inside source: true
+*** True Line Result
+ args.state.bgcolor += args.state.bginc
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # animation upkeep...change where we draw the next box and what color the~
+- Inside source: true
+*** True Line Result
+ # animation upkeep...change where we draw the next box and what color the
+** Processing line: ~ # window background will be.~
+- Inside source: true
+*** True Line Result
+ # window background will be.
+** Processing line: ~ if args.state.xinc > 0 && args.state.x >= 1280~
+- Inside source: true
+*** True Line Result
+ if args.state.xinc > 0 && args.state.x >= 1280
+** Processing line: ~ args.state.xinc = -7~
+- Inside source: true
+*** True Line Result
+ args.state.xinc = -7
+** Processing line: ~ elsif args.state.xinc < 0 && args.state.x < 0~
+- Inside source: true
+*** True Line Result
+ elsif args.state.xinc < 0 && args.state.x < 0
+** Processing line: ~ args.state.xinc = 7~
+- Inside source: true
+*** True Line Result
+ args.state.xinc = 7
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ if args.state.yinc > 0 && args.state.y >= 720~
+- Inside source: true
+*** True Line Result
+ if args.state.yinc > 0 && args.state.y >= 720
+** Processing line: ~ args.state.yinc = -7~
+- Inside source: true
+*** True Line Result
+ args.state.yinc = -7
+** Processing line: ~ elsif args.state.yinc < 0 && args.state.y < 0~
+- Inside source: true
+*** True Line Result
+ elsif args.state.yinc < 0 && args.state.y < 0
+** Processing line: ~ args.state.yinc = 7~
+- Inside source: true
+*** True Line Result
+ args.state.yinc = 7
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ if args.state.bginc > 0 && args.state.bgcolor >= 255~
+- Inside source: true
+*** True Line Result
+ if args.state.bginc > 0 && args.state.bgcolor >= 255
+** Processing line: ~ args.state.bginc = -1~
+- Inside source: true
+*** True Line Result
+ args.state.bginc = -1
+** Processing line: ~ elsif args.state.bginc < 0 && args.state.bgcolor <= 0~
+- Inside source: true
+*** True Line Result
+ elsif args.state.bginc < 0 && args.state.bgcolor <= 0
+** Processing line: ~ args.state.bginc = 1~
+- Inside source: true
+*** True Line Result
+ args.state.bginc = 1
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # clear the screen to a shade of blue and draw the render target, which~
+- Inside source: true
+*** True Line Result
+ # clear the screen to a shade of blue and draw the render target, which
+** Processing line: ~ # is not clearing every frame, on top of it. Note that you can NOT opt to~
+- Inside source: true
+*** True Line Result
+ # is not clearing every frame, on top of it. Note that you can NOT opt to
+** Processing line: ~ # skip clearing the screen, only render targets. The screen clears every~
+- Inside source: true
+*** True Line Result
+ # skip clearing the screen, only render targets. The screen clears every
+** Processing line: ~ # frame; double-buffering would prevent correct updates between frames.~
+- Inside source: true
+*** True Line Result
+ # frame; double-buffering would prevent correct updates between frames.
+** Processing line: ~ args.outputs.background_color = [ 0, 0, args.state.bgcolor, 255 ]~
+- Inside source: true
+*** True Line Result
+ args.outputs.background_color = [ 0, 0, args.state.bgcolor, 255 ]
+** Processing line: ~ args.outputs.sprites << [ 0, 0, 1280, 720, :accumulation ]~
+- Inside source: true
+*** True Line Result
+ args.outputs.sprites << [ 0, 0, 1280, 720, :accumulation ]
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ $gtk.reset~
+- Inside source: true
+*** True Line Result
+ $gtk.reset
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~#+end_src~
+- Line was identified as the end of a code block.
+*** True Line Result
+#+end_src
+** Processing line: ~~
+- End of paragraph detected.
+*** True Line Result
+
** Processing line: ~*** Tweening Lerping Easing Functions - Easing Functions - main.rb~
- Header detected.
*** True Line Result
@@ -61159,10 +61375,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
result = args.gtk.serialize_state args.state
-** Processing line: ~ assert.equal! result, "{:entity_id=>3, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>\"test\"}"~
+** Processing line: ~ assert.equal! result, "{:entity_id=>4, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>\"test\"}"~
- Inside source: true
*** True Line Result
- assert.equal! result, "{:entity_id=>3, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>\"test\"}"
+ assert.equal! result, "{:entity_id=>4, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>\"test\"}"
** Processing line: ~~
- Inside source: true
*** True Line Result
@@ -61179,10 +61395,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
result = args.gtk.serialize_state 'state.txt', args.state
-** Processing line: ~ assert.equal! result, "{:entity_id=>3, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>\"test\"}"~
+** Processing line: ~ assert.equal! result, "{:entity_id=>4, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>\"test\"}"~
- Inside source: true
*** True Line Result
- assert.equal! result, "{:entity_id=>3, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>\"test\"}"
+ assert.equal! result, "{:entity_id=>4, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>\"test\"}"
** Processing line: ~ end~
- Inside source: true
*** True Line Result
@@ -61375,10 +61591,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
serialized_state = args.gtk.serialize_state args.state
-** Processing line: ~ assert.equal! serialized_state, '{:entity_id=>9, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>{:entity_id=>1, :entity_name=>:player, :entity_keys_by_ref=>{}, :entity_type=>:player, :created_at=>-1, :global_created_at=>-1, :name=>"Ryu"}, :player_two=>{:entity_id=>2, :entity_name=>:player_strict, :entity_type=>:player_strict, :created_at=>-1, :global_created_at_elapsed=>-1, :entity_strict=>true, :entity_keys_by_ref=>{:entity_type=>:entity_name, :global_created_at_elapsed=>:created_at}, :name=>"Ken", :blood_type=>nil}}'~
+** Processing line: ~ assert.equal! serialized_state, '{:entity_id=>7, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>{:entity_id=>1, :entity_name=>:player, :entity_keys_by_ref=>{}, :entity_type=>:player, :created_at=>-1, :global_created_at=>-1, :name=>"Ryu"}, :player_two=>{:entity_id=>2, :entity_name=>:player_strict, :entity_type=>:player_strict, :created_at=>-1, :global_created_at_elapsed=>-1, :entity_strict=>true, :entity_keys_by_ref=>{:entity_type=>:entity_name, :global_created_at_elapsed=>:created_at}, :name=>"Ken", :blood_type=>nil}}'~
- Inside source: true
*** True Line Result
- assert.equal! serialized_state, '{:entity_id=>9, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>{:entity_id=>1, :entity_name=>:player, :entity_keys_by_ref=>{}, :entity_type=>:player, :created_at=>-1, :global_created_at=>-1, :name=>"Ryu"}, :player_two=>{:entity_id=>2, :entity_name=>:player_strict, :entity_type=>:player_strict, :created_at=>-1, :global_created_at_elapsed=>-1, :entity_strict=>true, :entity_keys_by_ref=>{:entity_type=>:entity_name, :global_created_at_elapsed=>:created_at}, :name=>"Ken", :blood_type=>nil}}'
+ assert.equal! serialized_state, '{:entity_id=>7, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>{:entity_id=>1, :entity_name=>:player, :entity_keys_by_ref=>{}, :entity_type=>:player, :created_at=>-1, :global_created_at=>-1, :name=>"Ryu"}, :player_two=>{:entity_id=>2, :entity_name=>:player_strict, :entity_type=>:player_strict, :created_at=>-1, :global_created_at_elapsed=>-1, :entity_strict=>true, :entity_keys_by_ref=>{:entity_type=>:entity_name, :global_created_at_elapsed=>:created_at}, :name=>"Ken", :blood_type=>nil}}'
** Processing line: ~~
- Inside source: true
*** True Line Result
@@ -61607,6 +61823,54 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
+** Processing line: ~ def test_serialization_excludes_thrash_count args, assert~
+- Inside source: true
+*** True Line Result
+ def test_serialization_excludes_thrash_count args, assert
+** Processing line: ~ GTK::Entity.__reset_id__!~
+- Inside source: true
+*** True Line Result
+ GTK::Entity.__reset_id__!
+** Processing line: ~ args.state.player.name = "Ryu"~
+- Inside source: true
+*** True Line Result
+ args.state.player.name = "Ryu"
+** Processing line: ~ # force a nil pun~
+- Inside source: true
+*** True Line Result
+ # force a nil pun
+** Processing line: ~ if args.state.player.age > 30~
+- Inside source: true
+*** True Line Result
+ if args.state.player.age > 30
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~ assert.equal! args.state.player.as_hash[:__thrash_count__][:>], 1~
+- Inside source: true
+*** True Line Result
+ assert.equal! args.state.player.as_hash[:__thrash_count__][:>], 1
+** Processing line: ~ result = args.gtk.serialize_state args.state~
+- Inside source: true
+*** True Line Result
+ result = args.gtk.serialize_state args.state
+** Processing line: ~ assert.false! (result.include? "__thrash_count__"),~
+- Inside source: true
+*** True Line Result
+ assert.false! (result.include? "__thrash_count__"),
+** Processing line: ~ "The __thrash_count__ key exists in state when it shouldn't have."~
+- Inside source: true
+*** True Line Result
+ "The __thrash_count__ key exists in state when it shouldn't have."
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
** Processing line: ~#+end_src~
- Line was identified as the end of a code block.
*** True Line Result
@@ -147791,6 +148055,746 @@ Follows is a source code listing for all files that have been open sourced. This
- End of paragraph detected.
*** True Line Result
+** Processing line: ~*** Teentiny - main.rb~
+- Header detected.
+*** True Line Result
+
+*** True Line Result
+*** Teentiny - main.rb
+** Processing line: ~#+begin_src ruby~
+- Line was identified as the beginning of a code block.
+*** True Line Result
+
+*** True Line Result
+#+begin_src ruby
+** Processing line: ~ # ./samples/99_genre_teentiny/app/main.rb~
+- Inside source: true
+*** True Line Result
+ # ./samples/99_genre_teentiny/app/main.rb
+** Processing line: ~ # full documenation is at http://docs.dragonruby.org~
+- Inside source: true
+*** True Line Result
+ # full documenation is at http://docs.dragonruby.org
+** Processing line: ~ # be sure to come to the discord if you hit any snags: http://discord.dragonruby.org~
+- Inside source: true
+*** True Line Result
+ # be sure to come to the discord if you hit any snags: http://discord.dragonruby.org
+** Processing line: ~ def tick args~
+- Inside source: true
+*** True Line Result
+ def tick args
+** Processing line: ~ # ====================================================~
+- Inside source: true
+*** True Line Result
+ # ====================================================
+** Processing line: ~ # initialize default variables~
+- Inside source: true
+*** True Line Result
+ # initialize default variables
+** Processing line: ~ # ====================================================~
+- Inside source: true
+*** True Line Result
+ # ====================================================
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # ruby has an operator called ||= which means "only initialize this if it's nil"~
+- Inside source: true
+*** True Line Result
+ # ruby has an operator called ||= which means "only initialize this if it's nil"
+** Processing line: ~ args.state.count_down ||= 20 * 60 # set the count down to 20 seconds~
+- Inside source: true
+*** True Line Result
+ args.state.count_down ||= 20 * 60 # set the count down to 20 seconds
+** Processing line: ~ # set the initial position of the target~
+- Inside source: true
+*** True Line Result
+ # set the initial position of the target
+** Processing line: ~ args.state.target ||= { x: args.grid.w.half,~
+- Inside source: true
+*** True Line Result
+ args.state.target ||= { x: args.grid.w.half,
+** Processing line: ~ y: args.grid.h.half,~
+- Inside source: true
+*** True Line Result
+ y: args.grid.h.half,
+** Processing line: ~ w: 20,~
+- Inside source: true
+*** True Line Result
+ w: 20,
+** Processing line: ~ h: 20 }~
+- Inside source: true
+*** True Line Result
+ h: 20 }
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # set the initial position of the player~
+- Inside source: true
+*** True Line Result
+ # set the initial position of the player
+** Processing line: ~ args.state.player ||= { x: 50,~
+- Inside source: true
+*** True Line Result
+ args.state.player ||= { x: 50,
+** Processing line: ~ y: 50,~
+- Inside source: true
+*** True Line Result
+ y: 50,
+** Processing line: ~ w: 20,~
+- Inside source: true
+*** True Line Result
+ w: 20,
+** Processing line: ~ h: 20 }~
+- Inside source: true
+*** True Line Result
+ h: 20 }
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # set the player movement speed~
+- Inside source: true
+*** True Line Result
+ # set the player movement speed
+** Processing line: ~ args.state.player_speed ||= 5~
+- Inside source: true
+*** True Line Result
+ args.state.player_speed ||= 5
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # set the score~
+- Inside source: true
+*** True Line Result
+ # set the score
+** Processing line: ~ args.state.score ||= 0~
+- Inside source: true
+*** True Line Result
+ args.state.score ||= 0
+** Processing line: ~ args.state.teleports ||= 3~
+- Inside source: true
+*** True Line Result
+ args.state.teleports ||= 3
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # set the instructions~
+- Inside source: true
+*** True Line Result
+ # set the instructions
+** Processing line: ~ args.state.instructions ||= "Get to the red goal! Use arrow keys to move. Spacebar to teleport (use them carefully)!"~
+- Inside source: true
+*** True Line Result
+ args.state.instructions ||= "Get to the red goal! Use arrow keys to move. Spacebar to teleport (use them carefully)!"
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # ====================================================~
+- Inside source: true
+*** True Line Result
+ # ====================================================
+** Processing line: ~ # render the game~
+- Inside source: true
+*** True Line Result
+ # render the game
+** Processing line: ~ # ====================================================~
+- Inside source: true
+*** True Line Result
+ # ====================================================
+** Processing line: ~ args.outputs.labels << { x: args.grid.w.half, y: args.grid.h - 10,~
+- Inside source: true
+*** True Line Result
+ args.outputs.labels << { x: args.grid.w.half, y: args.grid.h - 10,
+** Processing line: ~ text: args.state.instructions,~
+- Inside source: true
+*** True Line Result
+ text: args.state.instructions,
+** Processing line: ~ alignment_enum: 1 }~
+- Inside source: true
+*** True Line Result
+ alignment_enum: 1 }
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # check if it's game over. if so, then render game over~
+- Inside source: true
+*** True Line Result
+ # check if it's game over. if so, then render game over
+** Processing line: ~ # otherwise render the current time left~
+- Inside source: true
+*** True Line Result
+ # otherwise render the current time left
+** Processing line: ~ if game_over? args~
+- Inside source: true
+*** True Line Result
+ if game_over? args
+** Processing line: ~ args.outputs.labels << { x: args.grid.w.half,~
+- Inside source: true
+*** True Line Result
+ args.outputs.labels << { x: args.grid.w.half,
+** Processing line: ~ y: args.grid.h - 40,~
+- Inside source: true
+*** True Line Result
+ y: args.grid.h - 40,
+** Processing line: ~ text: "game over! (press r to start over)",~
+- Inside source: true
+*** True Line Result
+ text: "game over! (press r to start over)",
+** Processing line: ~ alignment_enum: 1 }~
+- Inside source: true
+*** True Line Result
+ alignment_enum: 1 }
+** Processing line: ~ else~
+- Inside source: true
+*** True Line Result
+ else
+** Processing line: ~ args.outputs.labels << { x: args.grid.w.half,~
+- Inside source: true
+*** True Line Result
+ args.outputs.labels << { x: args.grid.w.half,
+** Processing line: ~ y: args.grid.h - 40,~
+- Inside source: true
+*** True Line Result
+ y: args.grid.h - 40,
+** Processing line: ~ text: "time left: #{(args.state.count_down.idiv 60) + 1}",~
+- Inside source: true
+*** True Line Result
+ text: "time left: #{(args.state.count_down.idiv 60) + 1}",
+** Processing line: ~ alignment_enum: 1 }~
+- Inside source: true
+*** True Line Result
+ alignment_enum: 1 }
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # render the score~
+- Inside source: true
+*** True Line Result
+ # render the score
+** Processing line: ~ args.outputs.labels << { x: args.grid.w.half,~
+- Inside source: true
+*** True Line Result
+ args.outputs.labels << { x: args.grid.w.half,
+** Processing line: ~ y: args.grid.h - 70,~
+- Inside source: true
+*** True Line Result
+ y: args.grid.h - 70,
+** Processing line: ~ text: "score: #{args.state.score}",~
+- Inside source: true
+*** True Line Result
+ text: "score: #{args.state.score}",
+** Processing line: ~ alignment_enum: 1 }~
+- Inside source: true
+*** True Line Result
+ alignment_enum: 1 }
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # render the player with teleport count~
+- Inside source: true
+*** True Line Result
+ # render the player with teleport count
+** Processing line: ~ args.outputs.sprites << { x: args.state.player.x,~
+- Inside source: true
+*** True Line Result
+ args.outputs.sprites << { x: args.state.player.x,
+** Processing line: ~ y: args.state.player.y,~
+- Inside source: true
+*** True Line Result
+ y: args.state.player.y,
+** Processing line: ~ w: args.state.player.w,~
+- Inside source: true
+*** True Line Result
+ w: args.state.player.w,
+** Processing line: ~ h: args.state.player.h,~
+- Inside source: true
+*** True Line Result
+ h: args.state.player.h,
+** Processing line: ~ path: 'sprites/square-green.png' }~
+- Inside source: true
+*** True Line Result
+ path: 'sprites/square-green.png' }
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ args.outputs.labels << { x: args.state.player.x + 10,~
+- Inside source: true
+*** True Line Result
+ args.outputs.labels << { x: args.state.player.x + 10,
+** Processing line: ~ y: args.state.player.y + 40,~
+- Inside source: true
+*** True Line Result
+ y: args.state.player.y + 40,
+** Processing line: ~ text: "teleports: #{args.state.teleports}",~
+- Inside source: true
+*** True Line Result
+ text: "teleports: #{args.state.teleports}",
+** Processing line: ~ alignment_enum: 1, size_enum: -2 }~
+- Inside source: true
+*** True Line Result
+ alignment_enum: 1, size_enum: -2 }
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # render the target~
+- Inside source: true
+*** True Line Result
+ # render the target
+** Processing line: ~ args.outputs.sprites << { x: args.state.target.x,~
+- Inside source: true
+*** True Line Result
+ args.outputs.sprites << { x: args.state.target.x,
+** Processing line: ~ y: args.state.target.y,~
+- Inside source: true
+*** True Line Result
+ y: args.state.target.y,
+** Processing line: ~ w: args.state.target.w,~
+- Inside source: true
+*** True Line Result
+ w: args.state.target.w,
+** Processing line: ~ h: args.state.target.h,~
+- Inside source: true
+*** True Line Result
+ h: args.state.target.h,
+** Processing line: ~ path: 'sprites/square-red.png' }~
+- Inside source: true
+*** True Line Result
+ path: 'sprites/square-red.png' }
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # ====================================================~
+- Inside source: true
+*** True Line Result
+ # ====================================================
+** Processing line: ~ # run simulation~
+- Inside source: true
+*** True Line Result
+ # run simulation
+** Processing line: ~ # ====================================================~
+- Inside source: true
+*** True Line Result
+ # ====================================================
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # count down calculation~
+- Inside source: true
+*** True Line Result
+ # count down calculation
+** Processing line: ~ args.state.count_down -= 1~
+- Inside source: true
+*** True Line Result
+ args.state.count_down -= 1
+** Processing line: ~ args.state.count_down = -1 if args.state.count_down < -1~
+- Inside source: true
+*** True Line Result
+ args.state.count_down = -1 if args.state.count_down < -1
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # ====================================================~
+- Inside source: true
+*** True Line Result
+ # ====================================================
+** Processing line: ~ # process player input~
+- Inside source: true
+*** True Line Result
+ # process player input
+** Processing line: ~ # ====================================================~
+- Inside source: true
+*** True Line Result
+ # ====================================================
+** Processing line: ~ # if it isn't game over let them move~
+- Inside source: true
+*** True Line Result
+ # if it isn't game over let them move
+** Processing line: ~ if !game_over? args~
+- Inside source: true
+*** True Line Result
+ if !game_over? args
+** Processing line: ~ dir_y = 0~
+- Inside source: true
+*** True Line Result
+ dir_y = 0
+** Processing line: ~ dir_x = 0~
+- Inside source: true
+*** True Line Result
+ dir_x = 0
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # determine the change horizontally~
+- Inside source: true
+*** True Line Result
+ # determine the change horizontally
+** Processing line: ~ if args.inputs.keyboard.up~
+- Inside source: true
+*** True Line Result
+ if args.inputs.keyboard.up
+** Processing line: ~ dir_y += args.state.player_speed~
+- Inside source: true
+*** True Line Result
+ dir_y += args.state.player_speed
+** Processing line: ~ elsif args.inputs.keyboard.down~
+- Inside source: true
+*** True Line Result
+ elsif args.inputs.keyboard.down
+** Processing line: ~ dir_y -= args.state.player_speed~
+- Inside source: true
+*** True Line Result
+ dir_y -= args.state.player_speed
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # determine the change vertically~
+- Inside source: true
+*** True Line Result
+ # determine the change vertically
+** Processing line: ~ if args.inputs.keyboard.left~
+- Inside source: true
+*** True Line Result
+ if args.inputs.keyboard.left
+** Processing line: ~ dir_x -= args.state.player_speed~
+- Inside source: true
+*** True Line Result
+ dir_x -= args.state.player_speed
+** Processing line: ~ elsif args.inputs.keyboard.right~
+- Inside source: true
+*** True Line Result
+ elsif args.inputs.keyboard.right
+** Processing line: ~ dir_x += args.state.player_speed~
+- Inside source: true
+*** True Line Result
+ dir_x += args.state.player_speed
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # determine if teleport can be used~
+- Inside source: true
+*** True Line Result
+ # determine if teleport can be used
+** Processing line: ~ if args.inputs.keyboard.key_down.space && args.state.teleports > 0~
+- Inside source: true
+*** True Line Result
+ if args.inputs.keyboard.key_down.space && args.state.teleports > 0
+** Processing line: ~ args.state.teleports -= 1~
+- Inside source: true
+*** True Line Result
+ args.state.teleports -= 1
+** Processing line: ~ dir_x *= 20~
+- Inside source: true
+*** True Line Result
+ dir_x *= 20
+** Processing line: ~ dir_y *= 20~
+- Inside source: true
+*** True Line Result
+ dir_y *= 20
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # apply change to player~
+- Inside source: true
+*** True Line Result
+ # apply change to player
+** Processing line: ~ args.state.player.x += dir_x~
+- Inside source: true
+*** True Line Result
+ args.state.player.x += dir_x
+** Processing line: ~ args.state.player.y += dir_y~
+- Inside source: true
+*** True Line Result
+ args.state.player.y += dir_y
+** Processing line: ~ else~
+- Inside source: true
+*** True Line Result
+ else
+** Processing line: ~ # if r is pressed, reset the game~
+- Inside source: true
+*** True Line Result
+ # if r is pressed, reset the game
+** Processing line: ~ if args.inputs.keyboard.key_down.r~
+- Inside source: true
+*** True Line Result
+ if args.inputs.keyboard.key_down.r
+** Processing line: ~ $gtk.reset~
+- Inside source: true
+*** True Line Result
+ $gtk.reset
+** Processing line: ~ return~
+- Inside source: true
+*** True Line Result
+ return
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # ====================================================~
+- Inside source: true
+*** True Line Result
+ # ====================================================
+** Processing line: ~ # determine score~
+- Inside source: true
+*** True Line Result
+ # determine score
+** Processing line: ~ # ====================================================~
+- Inside source: true
+*** True Line Result
+ # ====================================================
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # calculate new score if the player is at goal~
+- Inside source: true
+*** True Line Result
+ # calculate new score if the player is at goal
+** Processing line: ~ if !game_over? args~
+- Inside source: true
+*** True Line Result
+ if !game_over? args
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # if the player is at the goal, then move the goal~
+- Inside source: true
+*** True Line Result
+ # if the player is at the goal, then move the goal
+** Processing line: ~ if args.state.player.intersect_rect? args.state.target~
+- Inside source: true
+*** True Line Result
+ if args.state.player.intersect_rect? args.state.target
+** Processing line: ~ # increment the goal~
+- Inside source: true
+*** True Line Result
+ # increment the goal
+** Processing line: ~ args.state.score += 1~
+- Inside source: true
+*** True Line Result
+ args.state.score += 1
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # move the goal to a random location~
+- Inside source: true
+*** True Line Result
+ # move the goal to a random location
+** Processing line: ~ args.state.target = { x: (rand args.grid.w), y: (rand args.grid.h), w: 20, h: 20 }~
+- Inside source: true
+*** True Line Result
+ args.state.target = { x: (rand args.grid.w), y: (rand args.grid.h), w: 20, h: 20 }
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # make sure the goal is inside the view area~
+- Inside source: true
+*** True Line Result
+ # make sure the goal is inside the view area
+** Processing line: ~ if args.state.target.x < 0~
+- Inside source: true
+*** True Line Result
+ if args.state.target.x < 0
+** Processing line: ~ args.state.target.x += 20~
+- Inside source: true
+*** True Line Result
+ args.state.target.x += 20
+** Processing line: ~ elsif args.state.target.x > 1280~
+- Inside source: true
+*** True Line Result
+ elsif args.state.target.x > 1280
+** Processing line: ~ args.state.target.x -= 20~
+- Inside source: true
+*** True Line Result
+ args.state.target.x -= 20
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ # make sure the goal is inside the view area~
+- Inside source: true
+*** True Line Result
+ # make sure the goal is inside the view area
+** Processing line: ~ if args.state.target.y < 0~
+- Inside source: true
+*** True Line Result
+ if args.state.target.y < 0
+** Processing line: ~ args.state.target.y += 20~
+- Inside source: true
+*** True Line Result
+ args.state.target.y += 20
+** Processing line: ~ elsif args.state.target.y > 720~
+- Inside source: true
+*** True Line Result
+ elsif args.state.target.y > 720
+** Processing line: ~ args.state.target.y -= 20~
+- Inside source: true
+*** True Line Result
+ args.state.target.y -= 20
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ def game_over? args~
+- Inside source: true
+*** True Line Result
+ def game_over? args
+** Processing line: ~ args.state.count_down < 0~
+- Inside source: true
+*** True Line Result
+ args.state.count_down < 0
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ $gtk.reset~
+- Inside source: true
+*** True Line Result
+ $gtk.reset
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~#+end_src~
+- Line was identified as the end of a code block.
+*** True Line Result
+#+end_src
+** Processing line: ~~
+- End of paragraph detected.
+*** True Line Result
+
+** Processing line: ~*** Teentiny - license.txt~
+- Header detected.
+*** True Line Result
+
+*** True Line Result
+*** Teentiny - license.txt
+** Processing line: ~#+begin_src ruby~
+- Line was identified as the beginning of a code block.
+*** True Line Result
+
+*** True Line Result
+#+begin_src ruby
+** Processing line: ~ # ./samples/99_genre_teentiny/license.txt~
+- Inside source: true
+*** True Line Result
+ # ./samples/99_genre_teentiny/license.txt
+** Processing line: ~ Copyright 2019 DragonRuby LLC~
+- Inside source: true
+*** True Line Result
+ Copyright 2019 DragonRuby LLC
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ MIT License~
+- Inside source: true
+*** True Line Result
+ MIT License
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:~
+- Inside source: true
+*** True Line Result
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.~
+- Inside source: true
+*** True Line Result
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.~
+- Inside source: true
+*** True Line Result
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~#+end_src~
+- Line was identified as the end of a code block.
+*** True Line Result
+#+end_src
+** Processing line: ~~
+- End of paragraph detected.
+*** True Line Result
+
** Processing line: ~** OSS~
- Header detected.
*** True Line Result
@@ -148622,6 +149626,74 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ def method_missing name, *args, &block~
+- Inside source: true
+*** True Line Result
+ def method_missing name, *args, &block
+** Processing line: ~ if (args.length <= 1) && (@state.as_hash.key? name)~
+- Inside source: true
+*** True Line Result
+ if (args.length <= 1) && (@state.as_hash.key? name)
+** Processing line: ~ raise <<-S~
+- Inside source: true
+*** True Line Result
+ raise <<-S
+** Processing line: ~ * ERROR - :#{name} method missing on ~#{self.class.name}~.~
+- Inside source: true
+*** True Line Result
+ * ERROR - :#{name} method missing on ~#{self.class.name}~.
+** Processing line: ~ The method~
+- Inside source: true
+*** True Line Result
+ The method
+** Processing line: ~ :#{name}~
+- Inside source: true
+*** True Line Result
+ :#{name}
+** Processing line: ~ with args~
+- Inside source: true
+*** True Line Result
+ with args
+** Processing line: ~ #{args}~
+- Inside source: true
+*** True Line Result
+ #{args}
+** Processing line: ~ doesn't exist on #{inspect}.~
+- Inside source: true
+*** True Line Result
+ doesn't exist on #{inspect}.
+** Processing line: ~ ** POSSIBLE SOLUTION - ~args.state.#{name}~ exists.~
+- Inside source: true
+*** True Line Result
+ ** POSSIBLE SOLUTION - ~args.state.#{name}~ exists.
+** Processing line: ~ Did you forget ~.state~ before ~.#{name}~?~
+- Inside source: true
+*** True Line Result
+ Did you forget ~.state~ before ~.#{name}~?
+** Processing line: ~ S~
+- Inside source: true
+*** True Line Result
+ S
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ super~
+- Inside source: true
+*** True Line Result
+ super
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
** Processing line: ~ end~
- Inside source: true
*** True Line Result
@@ -149510,6 +150582,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/attr_sprite.rb
+** Processing line: ~ # coding: utf-8~
+- Inside source: true
+*** True Line Result
+ # coding: utf-8
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -149766,6 +150842,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/console.rb
+** Processing line: ~ # coding: utf-8~
+- Inside source: true
+*** True Line Result
+ # coding: utf-8
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -151506,6 +152586,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
toggle
+** Processing line: ~ args.inputs.keyboard.clear if !@visible~
+- Inside source: true
+*** True Line Result
+ args.inputs.keyboard.clear if !@visible
** Processing line: ~ end~
- Inside source: true
*** True Line Result
@@ -151550,10 +152634,46 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
if args.inputs.keyboard.key_down.enter
-** Processing line: ~ eval_the_set_command~
+** Processing line: ~ if slide_progress > 0.5~
+- Inside source: true
+*** True Line Result
+ if slide_progress > 0.5
+** Processing line: ~ # in the event of an exception, the console window pops up~
+- Inside source: true
+*** True Line Result
+ # in the event of an exception, the console window pops up
+** Processing line: ~ # and is pre-filled with $gtk.reset.~
+- Inside source: true
+*** True Line Result
+ # and is pre-filled with $gtk.reset.
+** Processing line: ~ # there is an annoying scenario where the exception could be thrown~
+- Inside source: true
+*** True Line Result
+ # there is an annoying scenario where the exception could be thrown
+** Processing line: ~ # by pressing enter (while playing the game). if you press enter again~
- Inside source: true
*** True Line Result
- eval_the_set_command
+ # by pressing enter (while playing the game). if you press enter again
+** Processing line: ~ # quickly, then the game is reset which closes the console.~
+- Inside source: true
+*** True Line Result
+ # quickly, then the game is reset which closes the console.
+** Processing line: ~ # so enter in the console is only evaluated if the slide_progress~
+- Inside source: true
+*** True Line Result
+ # so enter in the console is only evaluated if the slide_progress
+** Processing line: ~ # is atleast half way down the page.~
+- Inside source: true
+*** True Line Result
+ # is atleast half way down the page.
+** Processing line: ~ eval_the_set_command~
+- Inside source: true
+*** True Line Result
+ eval_the_set_command
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
** Processing line: ~ elsif args.inputs.keyboard.key_down.v~
- Inside source: true
*** True Line Result
@@ -153030,6 +154150,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/console_color.rb
+** Processing line: ~ # coding: utf-8~
+- Inside source: true
+*** True Line Result
+ # coding: utf-8
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -153194,6 +154318,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/console_font_style.rb
+** Processing line: ~ # coding: utf-8~
+- Inside source: true
+*** True Line Result
+ # coding: utf-8
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -153382,6 +154510,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/console_menu.rb
+** Processing line: ~ # coding: utf-8~
+- Inside source: true
+*** True Line Result
+ # coding: utf-8
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -154050,6 +155182,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/console_prompt.rb
+** Processing line: ~ # coding: utf-8~
+- Inside source: true
+*** True Line Result
+ # coding: utf-8
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -164678,10 +165814,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/ios_wizard.rb
-** Processing line: ~ # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński~
+** Processing line: ~ # coding: utf-8~
- Inside source: true
*** True Line Result
- # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński
+ # coding: utf-8
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -164698,6 +165834,14 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
+** Processing line: ~ # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński~
+- Inside source: true
+*** True Line Result
+ # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
** Processing line: ~ class IOSWizard < Wizard~
- Inside source: true
*** True Line Result
@@ -169134,6 +170278,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/itch_wizard.rb
+** Processing line: ~ # coding: utf-8~
+- Inside source: true
+*** True Line Result
+ # coding: utf-8
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -170186,6 +171334,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/layout.rb
+** Processing line: ~ # coding: utf-8~
+- Inside source: true
+*** True Line Result
+ # coding: utf-8
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -173886,10 +175038,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/metadata.rb
-** Processing line: ~ # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński~
+** Processing line: ~ # coding: utf-8~
- Inside source: true
*** True Line Result
- # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński
+ # coding: utf-8
** Processing line: ~ # Copyright 2021 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -173906,6 +175058,14 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
+** Processing line: ~ # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński~
+- Inside source: true
+*** True Line Result
+ # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
** Processing line: ~ module Metadata~
- Inside source: true
*** True Line Result
@@ -178178,6 +179338,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/runtime/autocomplete.rb
+** Processing line: ~ # coding: utf-8~
+- Inside source: true
+*** True Line Result
+ # coding: utf-8
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -178806,6 +179970,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/runtime/benchmark.rb
+** Processing line: ~ # coding: utf-8~
+- Inside source: true
+*** True Line Result
+ # coding: utf-8
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -179278,6 +180446,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/runtime/draw.rb
+** Processing line: ~ # coding: utf-8~
+- Inside source: true
+*** True Line Result
+ # coding: utf-8
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -179942,6 +181114,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/runtime/framerate.rb
+** Processing line: ~ # coding: utf-8~
+- Inside source: true
+*** True Line Result
+ # coding: utf-8
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -180086,30 +181262,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
-** Processing line: ~ if !@framerate_important_notification_happened~
-- Inside source: true
-*** True Line Result
- if !@framerate_important_notification_happened
-** Processing line: ~ log_important framerate_warning_message~
-- Inside source: true
-*** True Line Result
- log_important framerate_warning_message
-** Processing line: ~ else~
-- Inside source: true
-*** True Line Result
- else
-** Processing line: ~ log framerate_warning_message~
-- Inside source: true
-*** True Line Result
- log framerate_warning_message
-** Processing line: ~ end~
+** Processing line: ~ log framerate_warning_message~
- Inside source: true
*** True Line Result
- end
-** Processing line: ~ @framerate_important_notification_happened = true~
-- Inside source: true
-*** True Line Result
- @framerate_important_notification_happened = true
+ log framerate_warning_message
** Processing line: ~ end~
- Inside source: true
*** True Line Result
@@ -180302,6 +181458,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/runtime/framerate_diagnostics.rb
+** Processing line: ~ # coding: utf-8~
+- Inside source: true
+*** True Line Result
+ # coding: utf-8
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -183626,6 +184786,342 @@ Follows is a source code listing for all files that have been open sourced. This
- End of paragraph detected.
*** True Line Result
+** Processing line: ~*** tweetcart.rb~
+- Header detected.
+*** True Line Result
+
+*** True Line Result
+*** tweetcart.rb
+** Processing line: ~#+begin_src ruby~
+- Line was identified as the beginning of a code block.
+*** True Line Result
+
+*** True Line Result
+#+begin_src ruby
+** Processing line: ~ # ./dragon/tweetcart.rb~
+- Inside source: true
+*** True Line Result
+ # ./dragon/tweetcart.rb
+** Processing line: ~ # coding: utf-8~
+- Inside source: true
+*** True Line Result
+ # coding: utf-8
+** Processing line: ~ # Copyright 2019 DragonRuby LLC~
+- Inside source: true
+*** True Line Result
+ # Copyright 2019 DragonRuby LLC
+** Processing line: ~ # MIT License~
+- Inside source: true
+*** True Line Result
+ # MIT License
+** Processing line: ~ # tweetcart.rb has been released under MIT (*only this file*).~
+- Inside source: true
+*** True Line Result
+ # tweetcart.rb has been released under MIT (*only this file*).
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ def $top_level.TICK &block~
+- Inside source: true
+*** True Line Result
+ def $top_level.TICK &block
+** Processing line: ~ $top_level.define_method(:tick) do |args|~
+- Inside source: true
+*** True Line Result
+ $top_level.define_method(:tick) do |args|
+** Processing line: ~ args.outputs[:scene].w = 160~
+- Inside source: true
+*** True Line Result
+ args.outputs[:scene].w = 160
+** Processing line: ~ args.outputs[:scene].h = 90~
+- Inside source: true
+*** True Line Result
+ args.outputs[:scene].h = 90
+** Processing line: ~ args.outputs[:scene].background_color = [0, 0, 0, 0]~
+- Inside source: true
+*** True Line Result
+ args.outputs[:scene].background_color = [0, 0, 0, 0]
+** Processing line: ~ block.call args~
+- Inside source: true
+*** True Line Result
+ block.call args
+** Processing line: ~ args.outputs.sprites << { x: 0, y: 0, w: 1280, h: 720, path: :scene }~
+- Inside source: true
+*** True Line Result
+ args.outputs.sprites << { x: 0, y: 0, w: 1280, h: 720, path: :scene }
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ def $top_level.bg! *rgb~
+- Inside source: true
+*** True Line Result
+ def $top_level.bg! *rgb
+** Processing line: ~ r,g,b = rgb~
+- Inside source: true
+*** True Line Result
+ r,g,b = rgb
+** Processing line: ~ r ||= 255~
+- Inside source: true
+*** True Line Result
+ r ||= 255
+** Processing line: ~ g ||= r~
+- Inside source: true
+*** True Line Result
+ g ||= r
+** Processing line: ~ b ||= g~
+- Inside source: true
+*** True Line Result
+ b ||= g
+** Processing line: ~ $args.outputs.background_color = [r, g, b]~
+- Inside source: true
+*** True Line Result
+ $args.outputs.background_color = [r, g, b]
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ def $top_level.slds~
+- Inside source: true
+*** True Line Result
+ def $top_level.slds
+** Processing line: ~ $args.outputs[:scene].sprites~
+- Inside source: true
+*** True Line Result
+ $args.outputs[:scene].sprites
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ def $top_level.slds! *os~
+- Inside source: true
+*** True Line Result
+ def $top_level.slds! *os
+** Processing line: ~ if (os.first.is_a? Numeric)~
+- Inside source: true
+*** True Line Result
+ if (os.first.is_a? Numeric)
+** Processing line: ~ sld! *os~
+- Inside source: true
+*** True Line Result
+ sld! *os
+** Processing line: ~ else~
+- Inside source: true
+*** True Line Result
+ else
+** Processing line: ~ os.each { |o| sld! *o }~
+- Inside source: true
+*** True Line Result
+ os.each { |o| sld! *o }
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ def $top_level.sld! *params~
+- Inside source: true
+*** True Line Result
+ def $top_level.sld! *params
+** Processing line: ~ x, y, w, h, r, g, b, a = nil~
+- Inside source: true
+*** True Line Result
+ x, y, w, h, r, g, b, a = nil
+** Processing line: ~ if params.length == 2~
+- Inside source: true
+*** True Line Result
+ if params.length == 2
+** Processing line: ~ x, y = params~
+- Inside source: true
+*** True Line Result
+ x, y = params
+** Processing line: ~ elsif params.length == 3 && (params.last.is_a? Array)~
+- Inside source: true
+*** True Line Result
+ elsif params.length == 3 && (params.last.is_a? Array)
+** Processing line: ~ x = params[0]~
+- Inside source: true
+*** True Line Result
+ x = params[0]
+** Processing line: ~ y = params[1]~
+- Inside source: true
+*** True Line Result
+ y = params[1]
+** Processing line: ~ r, g, b, a = params[2]~
+- Inside source: true
+*** True Line Result
+ r, g, b, a = params[2]
+** Processing line: ~ r ||= 255~
+- Inside source: true
+*** True Line Result
+ r ||= 255
+** Processing line: ~ g ||= r~
+- Inside source: true
+*** True Line Result
+ g ||= r
+** Processing line: ~ b ||= g~
+- Inside source: true
+*** True Line Result
+ b ||= g
+** Processing line: ~ a ||= 255~
+- Inside source: true
+*** True Line Result
+ a ||= 255
+** Processing line: ~ elsif params.length == 4~
+- Inside source: true
+*** True Line Result
+ elsif params.length == 4
+** Processing line: ~ x, y, w, h = params~
+- Inside source: true
+*** True Line Result
+ x, y, w, h = params
+** Processing line: ~ elsif params.length == 5 && (params.last.is_a? Array)~
+- Inside source: true
+*** True Line Result
+ elsif params.length == 5 && (params.last.is_a? Array)
+** Processing line: ~ x = params[0]~
+- Inside source: true
+*** True Line Result
+ x = params[0]
+** Processing line: ~ y = params[1]~
+- Inside source: true
+*** True Line Result
+ y = params[1]
+** Processing line: ~ w = params[2]~
+- Inside source: true
+*** True Line Result
+ w = params[2]
+** Processing line: ~ h = params[3]~
+- Inside source: true
+*** True Line Result
+ h = params[3]
+** Processing line: ~ r,g,b,a = params[4]~
+- Inside source: true
+*** True Line Result
+ r,g,b,a = params[4]
+** Processing line: ~ r ||= 255~
+- Inside source: true
+*** True Line Result
+ r ||= 255
+** Processing line: ~ g ||= r~
+- Inside source: true
+*** True Line Result
+ g ||= r
+** Processing line: ~ b ||= g~
+- Inside source: true
+*** True Line Result
+ b ||= g
+** Processing line: ~ a ||= 255~
+- Inside source: true
+*** True Line Result
+ a ||= 255
+** Processing line: ~ elsif params.length >= 7~
+- Inside source: true
+*** True Line Result
+ elsif params.length >= 7
+** Processing line: ~ x, y, w, h, r, g, b = params~
+- Inside source: true
+*** True Line Result
+ x, y, w, h, r, g, b = params
+** Processing line: ~ else~
+- Inside source: true
+*** True Line Result
+ else
+** Processing line: ~ raise "I don't know how to render #{params} with reasonable defaults."~
+- Inside source: true
+*** True Line Result
+ raise "I don't know how to render #{params} with reasonable defaults."
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ w ||= 1~
+- Inside source: true
+*** True Line Result
+ w ||= 1
+** Processing line: ~ h ||= 1~
+- Inside source: true
+*** True Line Result
+ h ||= 1
+** Processing line: ~ r ||= 255~
+- Inside source: true
+*** True Line Result
+ r ||= 255
+** Processing line: ~ g ||= 255~
+- Inside source: true
+*** True Line Result
+ g ||= 255
+** Processing line: ~ b ||= 255~
+- Inside source: true
+*** True Line Result
+ b ||= 255
+** Processing line: ~ a ||= 255~
+- Inside source: true
+*** True Line Result
+ a ||= 255
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~ slds << { x: x, y: y,~
+- Inside source: true
+*** True Line Result
+ slds << { x: x, y: y,
+** Processing line: ~ w: w, h: h,~
+- Inside source: true
+*** True Line Result
+ w: w, h: h,
+** Processing line: ~ r: r, g: g, b: b, a: a,~
+- Inside source: true
+*** True Line Result
+ r: r, g: g, b: b, a: a,
+** Processing line: ~ path: :pixel }~
+- Inside source: true
+*** True Line Result
+ path: :pixel }
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~ end~
+- Inside source: true
+*** True Line Result
+ end
+** Processing line: ~~
+- Inside source: true
+*** True Line Result
+
+** Processing line: ~#+end_src~
+- Line was identified as the end of a code block.
+*** True Line Result
+#+end_src
+** Processing line: ~~
+- End of paragraph detected.
+*** True Line Result
+
** Processing line: ~*** wizards.rb~
- Header detected.
*** True Line Result
@@ -183642,6 +185138,10 @@ Follows is a source code listing for all files that have been open sourced. This
- Inside source: true
*** True Line Result
# ./dragon/wizards.rb
+** Processing line: ~ # coding: utf-8~
+- Inside source: true
+*** True Line Result
+ # coding: utf-8
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
- Inside source: true
*** True Line Result
@@ -197599,7 +199099,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~~
** Processing line: ~ def calc_below~
** Processing line: ~ return unless player.dy <= 0~
-** Processing line: ~ tiles_below = find_tiles { |t| t.rect.top <= player.y }~
+** Processing line: ~ tiles_below = find_tiles { |t| t.rect.top <= player.prev_rect.y }~
** Processing line: ~ collision = find_colliding_tile tiles_below, (player.rect.merge y: player.next_rect.y)~
** Processing line: ~ return unless collision~
** Processing line: ~ if collision.neighbors.b == :none && player.jumped_down_at.elapsed_time < 10~
@@ -197630,7 +199130,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~~
** Processing line: ~ def calc_above~
** Processing line: ~ return unless player.dy > 0~
-** Processing line: ~ tiles_above = find_tiles { |t| t.rect.y >= player.y }~
+** Processing line: ~ tiles_above = find_tiles { |t| t.rect.y >= player.prev_rect.y }~
** Processing line: ~ collision = find_colliding_tile tiles_above, (player.rect.merge y: player.next_rect.y)~
** Processing line: ~ return unless collision~
** Processing line: ~ return if collision.neighbors.t == :none~
@@ -205156,6 +206656,74 @@ Follows is a source code listing for all files that have been open sourced. This
- PRE end detected.
** Processing line: ~~
** Processing line: ~~
+** Processing line: ~*** Advanced Rendering - Render Target Noclear - main.rb~
+- H3 detected.
+- Determining if line is a header.
+- Line contains ~*** ~... gsub-ing empty string
+- Formatting line: ~Advanced Rendering - Render Target Noclear - main.rb~
+- Line's tilde count is: 0
+- Line contains link marker: false
+- Determining if line is a header.
+- Line contains ~*** ~... gsub-ing empty string
+- Formatting line: ~Advanced Rendering - Render Target Noclear - main.rb~
+- Line's tilde count is: 0
+- Line contains link marker: false
+** Processing line: ~~
+** Processing line: ~#+begin_src ruby~
+- PRE start detected.
+** Processing line: ~ # ./samples/07_advanced_rendering/11_render_target_noclear/app/main.rb~
+** Processing line: ~ def tick args~
+** Processing line: ~ args.state.x ||= 500~
+** Processing line: ~ args.state.y ||= 350~
+** Processing line: ~ args.state.xinc ||= 7~
+** Processing line: ~ args.state.yinc ||= 7~
+** Processing line: ~ args.state.bgcolor ||= 1~
+** Processing line: ~ args.state.bginc ||= 1~
+** Processing line: ~~
+** Processing line: ~ # clear the render target on the first tick, and then never again. Draw~
+** Processing line: ~ # another box to it every tick, accumulating over time.~
+** Processing line: ~ clear_target = (args.state.tick_count == 0) || (args.inputs.keyboard.key_down.space)~
+** Processing line: ~ args.render_target(:accumulation).background_color = [ 0, 0, 0, 0 ];~
+** Processing line: ~ args.render_target(:accumulation).clear_before_render = clear_target~
+** Processing line: ~ args.render_target(:accumulation).solids << [args.state.x, args.state.y, 25, 25, 255, 0, 0, 255];~
+** Processing line: ~ args.state.x += args.state.xinc~
+** Processing line: ~ args.state.y += args.state.yinc~
+** Processing line: ~ args.state.bgcolor += args.state.bginc~
+** Processing line: ~~
+** Processing line: ~ # animation upkeep...change where we draw the next box and what color the~
+** Processing line: ~ # window background will be.~
+** Processing line: ~ if args.state.xinc > 0 && args.state.x >= 1280~
+** Processing line: ~ args.state.xinc = -7~
+** Processing line: ~ elsif args.state.xinc < 0 && args.state.x < 0~
+** Processing line: ~ args.state.xinc = 7~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ if args.state.yinc > 0 && args.state.y >= 720~
+** Processing line: ~ args.state.yinc = -7~
+** Processing line: ~ elsif args.state.yinc < 0 && args.state.y < 0~
+** Processing line: ~ args.state.yinc = 7~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ if args.state.bginc > 0 && args.state.bgcolor >= 255~
+** Processing line: ~ args.state.bginc = -1~
+** Processing line: ~ elsif args.state.bginc < 0 && args.state.bgcolor <= 0~
+** Processing line: ~ args.state.bginc = 1~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ # clear the screen to a shade of blue and draw the render target, which~
+** Processing line: ~ # is not clearing every frame, on top of it. Note that you can NOT opt to~
+** Processing line: ~ # skip clearing the screen, only render targets. The screen clears every~
+** Processing line: ~ # frame; double-buffering would prevent correct updates between frames.~
+** Processing line: ~ args.outputs.background_color = [ 0, 0, args.state.bgcolor, 255 ]~
+** Processing line: ~ args.outputs.sprites << [ 0, 0, 1280, 720, :accumulation ]~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ $gtk.reset~
+** Processing line: ~~
+** Processing line: ~#+end_src~
+- PRE end detected.
+** Processing line: ~~
+** Processing line: ~~
** Processing line: ~*** Tweening Lerping Easing Functions - Easing Functions - main.rb~
- H3 detected.
- Determining if line is a header.
@@ -207324,12 +208892,12 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~ GTK::Entity.__reset_id__!~
** Processing line: ~ args.state.player_one = "test"~
** Processing line: ~ result = args.gtk.serialize_state args.state~
-** Processing line: ~ assert.equal! result, "{:entity_id=>3, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>\"test\"}"~
+** Processing line: ~ assert.equal! result, "{:entity_id=>4, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>\"test\"}"~
** Processing line: ~~
** Processing line: ~ GTK::Entity.__reset_id__!~
** Processing line: ~ args.gtk.write_file 'state.txt', ''~
** Processing line: ~ result = args.gtk.serialize_state 'state.txt', args.state~
-** Processing line: ~ assert.equal! result, "{:entity_id=>3, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>\"test\"}"~
+** Processing line: ~ assert.equal! result, "{:entity_id=>4, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>\"test\"}"~
** Processing line: ~ end~
** Processing line: ~~
** Processing line: ~ def test_deserialize args, assert~
@@ -207378,7 +208946,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~ args.state.player_two = args.state.new_entity_strict(:player_strict, name: "Ken", blood_type: nil)~
** Processing line: ~~
** Processing line: ~ serialized_state = args.gtk.serialize_state args.state~
-** Processing line: ~ assert.equal! serialized_state, '{:entity_id=>9, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>{:entity_id=>1, :entity_name=>:player, :entity_keys_by_ref=>{}, :entity_type=>:player, :created_at=>-1, :global_created_at=>-1, :name=>"Ryu"}, :player_two=>{:entity_id=>2, :entity_name=>:player_strict, :entity_type=>:player_strict, :created_at=>-1, :global_created_at_elapsed=>-1, :entity_strict=>true, :entity_keys_by_ref=>{:entity_type=>:entity_name, :global_created_at_elapsed=>:created_at}, :name=>"Ken", :blood_type=>nil}}'~
+** Processing line: ~ assert.equal! serialized_state, '{:entity_id=>7, :entity_keys_by_ref=>{}, :tick_count=>-1, :player_one=>{:entity_id=>1, :entity_name=>:player, :entity_keys_by_ref=>{}, :entity_type=>:player, :created_at=>-1, :global_created_at=>-1, :name=>"Ryu"}, :player_two=>{:entity_id=>2, :entity_name=>:player_strict, :entity_type=>:player_strict, :created_at=>-1, :global_created_at_elapsed=>-1, :entity_strict=>true, :entity_keys_by_ref=>{:entity_type=>:entity_name, :global_created_at_elapsed=>:created_at}, :name=>"Ken", :blood_type=>nil}}'~
** Processing line: ~~
** Processing line: ~ GTK::Entity.__reset_id__!~
** Processing line: ~ deserialized_state = args.gtk.deserialize_state serialized_state~
@@ -207436,6 +209004,18 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~ assert.equal! deserialized_state.strict_entity.one, deserialized_state.strict_entity.two~
** Processing line: ~ end~
** Processing line: ~~
+** Processing line: ~ def test_serialization_excludes_thrash_count args, assert~
+** Processing line: ~ GTK::Entity.__reset_id__!~
+** Processing line: ~ args.state.player.name = "Ryu"~
+** Processing line: ~ # force a nil pun~
+** Processing line: ~ if args.state.player.age > 30~
+** Processing line: ~ end~
+** Processing line: ~ assert.equal! args.state.player.as_hash[:__thrash_count__][:>], 1~
+** Processing line: ~ result = args.gtk.serialize_state args.state~
+** Processing line: ~ assert.false! (result.include? "__thrash_count__"),~
+** Processing line: ~ "The __thrash_count__ key exists in state when it shouldn't have."~
+** Processing line: ~ end~
+** Processing line: ~~
** Processing line: ~#+end_src~
- PRE end detected.
** Processing line: ~~
@@ -230006,6 +231586,219 @@ Follows is a source code listing for all files that have been open sourced. This
- PRE end detected.
** Processing line: ~~
** Processing line: ~~
+** Processing line: ~*** Teentiny - main.rb~
+- H3 detected.
+- Determining if line is a header.
+- Line contains ~*** ~... gsub-ing empty string
+- Formatting line: ~Teentiny - main.rb~
+- Line's tilde count is: 0
+- Line contains link marker: false
+- Determining if line is a header.
+- Line contains ~*** ~... gsub-ing empty string
+- Formatting line: ~Teentiny - main.rb~
+- Line's tilde count is: 0
+- Line contains link marker: false
+** Processing line: ~~
+** Processing line: ~#+begin_src ruby~
+- PRE start detected.
+** Processing line: ~ # ./samples/99_genre_teentiny/app/main.rb~
+** Processing line: ~ # full documenation is at http://docs.dragonruby.org~
+** Processing line: ~ # be sure to come to the discord if you hit any snags: http://discord.dragonruby.org~
+** Processing line: ~ def tick args~
+** Processing line: ~ # ====================================================~
+** Processing line: ~ # initialize default variables~
+** Processing line: ~ # ====================================================~
+** Processing line: ~~
+** Processing line: ~ # ruby has an operator called ||= which means "only initialize this if it's nil"~
+** Processing line: ~ args.state.count_down ||= 20 * 60 # set the count down to 20 seconds~
+** Processing line: ~ # set the initial position of the target~
+** Processing line: ~ args.state.target ||= { x: args.grid.w.half,~
+** Processing line: ~ y: args.grid.h.half,~
+** Processing line: ~ w: 20,~
+** Processing line: ~ h: 20 }~
+** Processing line: ~~
+** Processing line: ~ # set the initial position of the player~
+** Processing line: ~ args.state.player ||= { x: 50,~
+** Processing line: ~ y: 50,~
+** Processing line: ~ w: 20,~
+** Processing line: ~ h: 20 }~
+** Processing line: ~~
+** Processing line: ~ # set the player movement speed~
+** Processing line: ~ args.state.player_speed ||= 5~
+** Processing line: ~~
+** Processing line: ~ # set the score~
+** Processing line: ~ args.state.score ||= 0~
+** Processing line: ~ args.state.teleports ||= 3~
+** Processing line: ~~
+** Processing line: ~ # set the instructions~
+** Processing line: ~ args.state.instructions ||= "Get to the red goal! Use arrow keys to move. Spacebar to teleport (use them carefully)!"~
+** Processing line: ~~
+** Processing line: ~ # ====================================================~
+** Processing line: ~ # render the game~
+** Processing line: ~ # ====================================================~
+** Processing line: ~ args.outputs.labels << { x: args.grid.w.half, y: args.grid.h - 10,~
+** Processing line: ~ text: args.state.instructions,~
+** Processing line: ~ alignment_enum: 1 }~
+** Processing line: ~~
+** Processing line: ~ # check if it's game over. if so, then render game over~
+** Processing line: ~ # otherwise render the current time left~
+** Processing line: ~ if game_over? args~
+** Processing line: ~ args.outputs.labels << { x: args.grid.w.half,~
+** Processing line: ~ y: args.grid.h - 40,~
+** Processing line: ~ text: "game over! (press r to start over)",~
+** Processing line: ~ alignment_enum: 1 }~
+** Processing line: ~ else~
+** Processing line: ~ args.outputs.labels << { x: args.grid.w.half,~
+** Processing line: ~ y: args.grid.h - 40,~
+** Processing line: ~ text: "time left: #{(args.state.count_down.idiv 60) + 1}",~
+** Processing line: ~ alignment_enum: 1 }~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ # render the score~
+** Processing line: ~ args.outputs.labels << { x: args.grid.w.half,~
+** Processing line: ~ y: args.grid.h - 70,~
+** Processing line: ~ text: "score: #{args.state.score}",~
+** Processing line: ~ alignment_enum: 1 }~
+** Processing line: ~~
+** Processing line: ~ # render the player with teleport count~
+** Processing line: ~ args.outputs.sprites << { x: args.state.player.x,~
+** Processing line: ~ y: args.state.player.y,~
+** Processing line: ~ w: args.state.player.w,~
+** Processing line: ~ h: args.state.player.h,~
+** Processing line: ~ path: 'sprites/square-green.png' }~
+** Processing line: ~~
+** Processing line: ~ args.outputs.labels << { x: args.state.player.x + 10,~
+** Processing line: ~ y: args.state.player.y + 40,~
+** Processing line: ~ text: "teleports: #{args.state.teleports}",~
+** Processing line: ~ alignment_enum: 1, size_enum: -2 }~
+** Processing line: ~~
+** Processing line: ~ # render the target~
+** Processing line: ~ args.outputs.sprites << { x: args.state.target.x,~
+** Processing line: ~ y: args.state.target.y,~
+** Processing line: ~ w: args.state.target.w,~
+** Processing line: ~ h: args.state.target.h,~
+** Processing line: ~ path: 'sprites/square-red.png' }~
+** Processing line: ~~
+** Processing line: ~ # ====================================================~
+** Processing line: ~ # run simulation~
+** Processing line: ~ # ====================================================~
+** Processing line: ~~
+** Processing line: ~ # count down calculation~
+** Processing line: ~ args.state.count_down -= 1~
+** Processing line: ~ args.state.count_down = -1 if args.state.count_down < -1~
+** Processing line: ~~
+** Processing line: ~ # ====================================================~
+** Processing line: ~ # process player input~
+** Processing line: ~ # ====================================================~
+** Processing line: ~ # if it isn't game over let them move~
+** Processing line: ~ if !game_over? args~
+** Processing line: ~ dir_y = 0~
+** Processing line: ~ dir_x = 0~
+** Processing line: ~~
+** Processing line: ~ # determine the change horizontally~
+** Processing line: ~ if args.inputs.keyboard.up~
+** Processing line: ~ dir_y += args.state.player_speed~
+** Processing line: ~ elsif args.inputs.keyboard.down~
+** Processing line: ~ dir_y -= args.state.player_speed~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ # determine the change vertically~
+** Processing line: ~ if args.inputs.keyboard.left~
+** Processing line: ~ dir_x -= args.state.player_speed~
+** Processing line: ~ elsif args.inputs.keyboard.right~
+** Processing line: ~ dir_x += args.state.player_speed~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ # determine if teleport can be used~
+** Processing line: ~ if args.inputs.keyboard.key_down.space && args.state.teleports > 0~
+** Processing line: ~ args.state.teleports -= 1~
+** Processing line: ~ dir_x *= 20~
+** Processing line: ~ dir_y *= 20~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ # apply change to player~
+** Processing line: ~ args.state.player.x += dir_x~
+** Processing line: ~ args.state.player.y += dir_y~
+** Processing line: ~ else~
+** Processing line: ~ # if r is pressed, reset the game~
+** Processing line: ~ if args.inputs.keyboard.key_down.r~
+** Processing line: ~ $gtk.reset~
+** Processing line: ~ return~
+** Processing line: ~ end~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ # ====================================================~
+** Processing line: ~ # determine score~
+** Processing line: ~ # ====================================================~
+** Processing line: ~~
+** Processing line: ~ # calculate new score if the player is at goal~
+** Processing line: ~ if !game_over? args~
+** Processing line: ~~
+** Processing line: ~ # if the player is at the goal, then move the goal~
+** Processing line: ~ if args.state.player.intersect_rect? args.state.target~
+** Processing line: ~ # increment the goal~
+** Processing line: ~ args.state.score += 1~
+** Processing line: ~~
+** Processing line: ~ # move the goal to a random location~
+** Processing line: ~ args.state.target = { x: (rand args.grid.w), y: (rand args.grid.h), w: 20, h: 20 }~
+** Processing line: ~~
+** Processing line: ~ # make sure the goal is inside the view area~
+** Processing line: ~ if args.state.target.x < 0~
+** Processing line: ~ args.state.target.x += 20~
+** Processing line: ~ elsif args.state.target.x > 1280~
+** Processing line: ~ args.state.target.x -= 20~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ # make sure the goal is inside the view area~
+** Processing line: ~ if args.state.target.y < 0~
+** Processing line: ~ args.state.target.y += 20~
+** Processing line: ~ elsif args.state.target.y > 720~
+** Processing line: ~ args.state.target.y -= 20~
+** Processing line: ~ end~
+** Processing line: ~ end~
+** Processing line: ~ end~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ def game_over? args~
+** Processing line: ~ args.state.count_down < 0~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ $gtk.reset~
+** Processing line: ~~
+** Processing line: ~#+end_src~
+- PRE end detected.
+** Processing line: ~~
+** Processing line: ~~
+** Processing line: ~*** Teentiny - license.txt~
+- H3 detected.
+- Determining if line is a header.
+- Line contains ~*** ~... gsub-ing empty string
+- Formatting line: ~Teentiny - license.txt~
+- Line's tilde count is: 0
+- Line contains link marker: false
+- Determining if line is a header.
+- Line contains ~*** ~... gsub-ing empty string
+- Formatting line: ~Teentiny - license.txt~
+- Line's tilde count is: 0
+- Line contains link marker: false
+** Processing line: ~~
+** Processing line: ~#+begin_src ruby~
+- PRE start detected.
+** Processing line: ~ # ./samples/99_genre_teentiny/license.txt~
+** Processing line: ~ Copyright 2019 DragonRuby LLC~
+** Processing line: ~~
+** Processing line: ~ MIT License~
+** Processing line: ~~
+** Processing line: ~ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:~
+** Processing line: ~~
+** Processing line: ~ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.~
+** Processing line: ~~
+** Processing line: ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.~
+** Processing line: ~~
+** Processing line: ~#+end_src~
+- PRE end detected.
+** Processing line: ~~
+** Processing line: ~~
** Processing line: ~** OSS~
- H2 detected.
- Determining if line is a header.
@@ -230244,6 +232037,23 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~ def autocomplete_methods~
** Processing line: ~ [:inputs, :outputs, :gtk, :state, :geometry, :audio, :grid, :layout, :fn]~
** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ def method_missing name, *args, &block~
+** Processing line: ~ if (args.length <= 1) && (@state.as_hash.key? name)~
+** Processing line: ~ raise <<-S~
+** Processing line: ~ * ERROR - :#{name} method missing on ~#{self.class.name}~.~
+** Processing line: ~ The method~
+** Processing line: ~ :#{name}~
+** Processing line: ~ with args~
+** Processing line: ~ #{args}~
+** Processing line: ~ doesn't exist on #{inspect}.~
+** Processing line: ~ ** POSSIBLE SOLUTION - ~args.state.#{name}~ exists.~
+** Processing line: ~ Did you forget ~.state~ before ~.#{name}~?~
+** Processing line: ~ S~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ super~
+** Processing line: ~ end~
** Processing line: ~ end~
** Processing line: ~ end~
** Processing line: ~~
@@ -230508,6 +232318,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/attr_sprite.rb~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # attr_sprite.rb has been released under MIT (*only this file*).~
@@ -230586,6 +232397,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/console.rb~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # console.rb has been released under MIT (*only this file*).~
@@ -231021,6 +232833,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~ if console_toggle_key_down? args~
** Processing line: ~ args.inputs.text.clear~
** Processing line: ~ toggle~
+** Processing line: ~ args.inputs.keyboard.clear if !@visible~
** Processing line: ~ end~
** Processing line: ~~
** Processing line: ~ return unless visible?~
@@ -231032,7 +232845,16 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~ @log_offset = 0 if @log_offset < 0~
** Processing line: ~~
** Processing line: ~ if args.inputs.keyboard.key_down.enter~
-** Processing line: ~ eval_the_set_command~
+** Processing line: ~ if slide_progress > 0.5~
+** Processing line: ~ # in the event of an exception, the console window pops up~
+** Processing line: ~ # and is pre-filled with $gtk.reset.~
+** Processing line: ~ # there is an annoying scenario where the exception could be thrown~
+** Processing line: ~ # by pressing enter (while playing the game). if you press enter again~
+** Processing line: ~ # quickly, then the game is reset which closes the console.~
+** Processing line: ~ # so enter in the console is only evaluated if the slide_progress~
+** Processing line: ~ # is atleast half way down the page.~
+** Processing line: ~ eval_the_set_command~
+** Processing line: ~ end~
** Processing line: ~ elsif args.inputs.keyboard.key_down.v~
** Processing line: ~ if args.inputs.keyboard.key_down.control || args.inputs.keyboard.key_down.meta~
** Processing line: ~ prompt << $gtk.ffi_misc.getclipboard~
@@ -231416,6 +233238,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/console_color.rb~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # console_color.rb has been released under MIT (*only this file*).~
@@ -231471,6 +233294,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/console_font_style.rb~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # console_font_style.rb has been released under MIT (*only this file*).~
@@ -231532,6 +233356,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/console_menu.rb~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # console_menu.rb has been released under MIT (*only this file*).~
@@ -231713,6 +233538,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/console_prompt.rb~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # console_prompt.rb has been released under MIT (*only this file*).~
@@ -234510,11 +236336,13 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/ios_wizard.rb~
-** Processing line: ~ # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # ios_wizard.rb has been released under MIT (*only this file*).~
** Processing line: ~~
+** Processing line: ~ # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński~
+** Processing line: ~~
** Processing line: ~ class IOSWizard < Wizard~
** Processing line: ~ def initialize~
** Processing line: ~ @doctor_executed_at = 0~
@@ -235638,6 +237466,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/itch_wizard.rb~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # itch_wizard.rb has been released under MIT (*only this file*).~
@@ -235915,6 +237744,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/layout.rb~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # layout.rb has been released under MIT (*only this file*).~
@@ -236868,11 +238698,13 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/metadata.rb~
-** Processing line: ~ # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2021 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # metadata.rb has been released under MIT (*only this file*).~
** Processing line: ~~
+** Processing line: ~ # Contributors outside of DragonRuby who also hold Copyright: Michał Dudziński~
+** Processing line: ~~
** Processing line: ~ module Metadata~
** Processing line: ~ def metadata_file_path~
** Processing line: ~ "metadata/game_metadata.txt"~
@@ -237983,6 +239815,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/runtime/autocomplete.rb~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # autocomplete.rb has been released under MIT (*only this file*).~
@@ -238154,6 +239987,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/runtime/benchmark.rb~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # benchmark.rb has been released under MIT (*only this file*).~
@@ -238286,6 +240120,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/runtime/draw.rb~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # draw.rb has been released under MIT (*only this file*).~
@@ -238466,6 +240301,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/runtime/framerate.rb~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # framerate.rb has been released under MIT (*only this file*).~
@@ -238502,12 +240338,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~ if framerate_below_threshold?~
** Processing line: ~ @last_framerate = current_framerate~
** Processing line: ~ if [email protected]?~
-** Processing line: ~ if !@framerate_important_notification_happened~
-** Processing line: ~ log_important framerate_warning_message~
-** Processing line: ~ else~
-** Processing line: ~ log framerate_warning_message~
-** Processing line: ~ end~
-** Processing line: ~ @framerate_important_notification_happened = true~
+** Processing line: ~ log framerate_warning_message~
** Processing line: ~ end~
** Processing line: ~ end~
** Processing line: ~~
@@ -238570,6 +240401,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/runtime/framerate_diagnostics.rb~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # framerate_diagnostics.rb has been released under MIT (*only this file*).~
@@ -239459,6 +241291,104 @@ Follows is a source code listing for all files that have been open sourced. This
- PRE end detected.
** Processing line: ~~
** Processing line: ~~
+** Processing line: ~*** tweetcart.rb~
+- H3 detected.
+- Determining if line is a header.
+- Line contains ~*** ~... gsub-ing empty string
+- Formatting line: ~tweetcart.rb~
+- Line's tilde count is: 0
+- Line contains link marker: false
+- Determining if line is a header.
+- Line contains ~*** ~... gsub-ing empty string
+- Formatting line: ~tweetcart.rb~
+- Line's tilde count is: 0
+- Line contains link marker: false
+** Processing line: ~~
+** Processing line: ~#+begin_src ruby~
+- PRE start detected.
+** Processing line: ~ # ./dragon/tweetcart.rb~
+** Processing line: ~ # coding: utf-8~
+** Processing line: ~ # Copyright 2019 DragonRuby LLC~
+** Processing line: ~ # MIT License~
+** Processing line: ~ # tweetcart.rb has been released under MIT (*only this file*).~
+** Processing line: ~~
+** Processing line: ~ def $top_level.TICK &block~
+** Processing line: ~ $top_level.define_method(:tick) do |args|~
+** Processing line: ~ args.outputs[:scene].w = 160~
+** Processing line: ~ args.outputs[:scene].h = 90~
+** Processing line: ~ args.outputs[:scene].background_color = [0, 0, 0, 0]~
+** Processing line: ~ block.call args~
+** Processing line: ~ args.outputs.sprites << { x: 0, y: 0, w: 1280, h: 720, path: :scene }~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ def $top_level.bg! *rgb~
+** Processing line: ~ r,g,b = rgb~
+** Processing line: ~ r ||= 255~
+** Processing line: ~ g ||= r~
+** Processing line: ~ b ||= g~
+** Processing line: ~ $args.outputs.background_color = [r, g, b]~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ def $top_level.slds~
+** Processing line: ~ $args.outputs[:scene].sprites~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ def $top_level.slds! *os~
+** Processing line: ~ if (os.first.is_a? Numeric)~
+** Processing line: ~ sld! *os~
+** Processing line: ~ else~
+** Processing line: ~ os.each { |o| sld! *o }~
+** Processing line: ~ end~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ def $top_level.sld! *params~
+** Processing line: ~ x, y, w, h, r, g, b, a = nil~
+** Processing line: ~ if params.length == 2~
+** Processing line: ~ x, y = params~
+** Processing line: ~ elsif params.length == 3 && (params.last.is_a? Array)~
+** Processing line: ~ x = params[0]~
+** Processing line: ~ y = params[1]~
+** Processing line: ~ r, g, b, a = params[2]~
+** Processing line: ~ r ||= 255~
+** Processing line: ~ g ||= r~
+** Processing line: ~ b ||= g~
+** Processing line: ~ a ||= 255~
+** Processing line: ~ elsif params.length == 4~
+** Processing line: ~ x, y, w, h = params~
+** Processing line: ~ elsif params.length == 5 && (params.last.is_a? Array)~
+** Processing line: ~ x = params[0]~
+** Processing line: ~ y = params[1]~
+** Processing line: ~ w = params[2]~
+** Processing line: ~ h = params[3]~
+** Processing line: ~ r,g,b,a = params[4]~
+** Processing line: ~ r ||= 255~
+** Processing line: ~ g ||= r~
+** Processing line: ~ b ||= g~
+** Processing line: ~ a ||= 255~
+** Processing line: ~ elsif params.length >= 7~
+** Processing line: ~ x, y, w, h, r, g, b = params~
+** Processing line: ~ else~
+** Processing line: ~ raise "I don't know how to render #{params} with reasonable defaults."~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~ w ||= 1~
+** Processing line: ~ h ||= 1~
+** Processing line: ~ r ||= 255~
+** Processing line: ~ g ||= 255~
+** Processing line: ~ b ||= 255~
+** Processing line: ~ a ||= 255~
+** Processing line: ~~
+** Processing line: ~ slds << { x: x, y: y,~
+** Processing line: ~ w: w, h: h,~
+** Processing line: ~ r: r, g: g, b: b, a: a,~
+** Processing line: ~ path: :pixel }~
+** Processing line: ~ end~
+** Processing line: ~ end~
+** Processing line: ~~
+** Processing line: ~#+end_src~
+- PRE end detected.
+** Processing line: ~~
+** Processing line: ~~
** Processing line: ~*** wizards.rb~
- H3 detected.
- Determining if line is a header.
@@ -239475,6 +241405,7 @@ Follows is a source code listing for all files that have been open sourced. This
** Processing line: ~#+begin_src ruby~
- PRE start detected.
** Processing line: ~ # ./dragon/wizards.rb~
+** Processing line: ~ # coding: utf-8~
** Processing line: ~ # Copyright 2019 DragonRuby LLC~
** Processing line: ~ # MIT License~
** Processing line: ~ # wizards.rb has been released under MIT (*only this file*).~