diff options
| author | Tom Black <[email protected]> | 2016-12-24 22:17:34 -0600 |
|---|---|---|
| committer | Tom Black <[email protected]> | 2016-12-24 22:17:34 -0600 |
| commit | e81d32b470cdead1c114b6d1b5b6bda958d6b1ad (patch) | |
| tree | 3d61e376c8f460b2ff932cb9f9104f2e0cf5b72e /test/testcard.rb | |
| parent | 326b74d485ce81c0a4e1da0e5158a2c83e028915 (diff) | |
| download | ruby2d-e81d32b470cdead1c114b6d1b5b6bda958d6b1ad.tar.gz ruby2d-e81d32b470cdead1c114b6d1b5b6bda958d6b1ad.zip | |
Merge all tests into `test/` directory
Diffstat (limited to 'test/testcard.rb')
| -rw-r--r-- | test/testcard.rb | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/test/testcard.rb b/test/testcard.rb new file mode 100644 index 0000000..dfe049b --- /dev/null +++ b/test/testcard.rb @@ -0,0 +1,188 @@ +unless RUBY_ENGINE == 'opal' + require 'ruby2d' +end + +if RUBY_ENGINE == 'opal' + media = "../tests/media" +else + media = "media" +end + +set diagnostics: true + +set width: 700, height: 500, title: "Ruby 2D – Test Card" + +# Read window attributes +puts "=== Window Attributes === +Title: #{get :title} +Width: #{get :width} +Height: #{get :height} +FPS: #{get :fps} +Self: #{get :window}\n\n" + +# Primary colors +Rectangle.new(0, 0, 50, 100, [1, 0, 0, 1]) +Rectangle.new(50, 0, 50, 100, [0, 1, 0, 1]) +Rectangle.new(100, 0, 50, 100, [0, 0, 1, 1]) + +# Color strings +Square.new( 150, 0, 50, 'black') +Square.new( 200, 0, 50, 'gray') +Square.new( 250, 0, 50, 'silver') +Square.new( 300, 0, 50, 'white') +Rectangle.new(350, 0, 50, 50, 'navy') +Rectangle.new(400, 0, 50, 50, 'blue') +Rectangle.new(450, 0, 50, 50, 'aqua') +Rectangle.new(500, 0, 50, 50, 'teal') +Rectangle.new(550, 0, 50, 50, 'olive') + +Rectangle.new(150, 50, 50, 50, 'green') +Rectangle.new(200, 50, 50, 50, 'lime') +Rectangle.new(250, 50, 50, 50, 'yellow') +Rectangle.new(300, 50, 50, 50, 'orange') +Rectangle.new(350, 50, 50, 50, 'red') +Rectangle.new(400, 50, 50, 50, 'maroon') +Rectangle.new(450, 50, 50, 50, 'fuchsia') +Rectangle.new(500, 50, 50, 50, 'purple') +Rectangle.new(550, 50, 50, 50, 'brown') + +# Mix of named colors and numbers +Rectangle.new(600, 0, 50, 50, +[ + 'red', + 'green', + 'blue', + 'yellow' +]) +Rectangle.new(650, 0, 50, 50, +[ + [1.0, 0, 0, 1], + 'green', + [0.0, 0, 1, 1.0], + 'yellow' +]) +Rectangle.new(600, 50, 50, 50, 'random') +Rectangle.new(650, 50, 50, 50, 'random') + +# White to black gradient +Rectangle.new(0, 100, 700, 25, +[ + [1.0, 1.0, 1.0, 1.0], + [0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0], + [1.0, 1.0, 1.0, 1.0] +]) + +# Color gradient +Rectangle.new(0, 125, 700, 50, +[ + [1.0, 0.0, 0.0, 1.0], + [0.0, 1.0, 0.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [1.0, 1.0, 0.0, 1.0] +]) + +# Transparancy +Rectangle.new(0, 165, 700, 35, +[ + [1.0, 1.0, 1.0, 0.0], + [1.0, 1.0, 1.0, 1.0], + [1.0, 1.0, 1.0, 1.0], + [1.0, 1.0, 1.0, 0.0] +]) + +# Triangles +Triangle.new(25, 200, 50, 250, 0, 250, [1.0, 0, 0, 1.0]) +Triangle.new(75, 200, 100, 250, 50, 250, [ 0, 1.0, 0, 1.0]) +Triangle.new(125, 200, 150, 250, 100, 250, [ 0, 0, 1.0, 1.0]) +Triangle.new(175, 200, 200, 250, 150, 250, +[ + [1.0, 0, 0, 1.0], + [0, 1.0, 0, 1.0], + [0, 0, 1.0, 1.0] +]) +Rectangle.new(200, 200, 50, 50, [0.5, 0.5, 0.5, 1.0]) # add background for transparancy +Triangle.new(225, 200, 250, 250, 200, 250, +[ + [1.0, 1.0, 1.0, 1.0], + [0.0, 0.0, 0.0, 1.0], + [1.0, 1.0, 1.0, 0.0] +]) + +# Quadrilaterals +Quad.new( + 300, 200, + 350, 200, + 300, 250, + 250, 250, + [ + [1.0, 0.0, 0.0, 1.0], + [0.0, 1.0, 0.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [1.0, 1.0, 0.0, 1.0] + ] +) + +Quad.new( + 250, 200, + 300, 200, + 350, 250, + 300, 250, + [ + [1.0, 1.0, 1.0, 0.0], + [1.0, 1.0, 1.0, 0.0], + [1.0, 1.0, 1.0, 1.0], + [1.0, 1.0, 1.0, 0.0] + ] +) + +# Images +Image.new(590, 180, "#{media}/image.png") +Image.new(590, 290, "#{media}/image.jpg") +Image.new(590, 400, "#{media}/image.bmp") +img_r = Image.new(350, 200, "#{media}/colors.png") +img_r.width, img_r.height = 50, 50 +# img_r.color = [1.0, 0.3, 0.3, 1.0] +img_g = Image.new(400, 200, "#{media}/colors.png") +img_g.width, img_g.height = 50, 50 +# img_g.color = [0.3, 1.0, 0.3, 1.0] +img_b = Image.new(450, 200, "#{media}/colors.png") +img_b.width, img_b.height = 50, 50 +# img_b.color = [0.3, 0.3, 1.0, 1.0] + +# Text +txt_r = Text.new( 44, 202, 20, "R", "#{media}/bitstream_vera/vera.ttf") +# txt_r.color = [1.0, 0.0, 0.0, 1.0] +txt_g = Text.new( 92, 202, 20, "G", "#{media}/bitstream_vera/vera.ttf") +# txt_g.color = [0.0, 1.0, 0.0, 1.0] +txt_b = Text.new(144, 202, 20, "B", "#{media}/bitstream_vera/vera.ttf") +# txt_b.color = [0.0, 0.0, 1.0, 1.0] + +# Frames per second +fps = Text.new(10, 470, 20, "", "#{media}/bitstream_vera/vera.ttf") + +# Sprites +s1 = Sprite.new(500, 200, "#{media}/sprite_sheet.png") +s1.add(forwards: [ + [ 0, 0, 50, 50, 30], + [ 50, 0, 50, 50, 40], + [100, 0, 50, 50, 50], + [150, 0, 50, 50, 60] +]) + +# Pointer for mouse +pointer = Square.new(0, 0, 10, 'white') + +on key: 'escape' do + close +end + +update do + pointer.x = (get :mouse_x) - 5 + pointer.y = (get :mouse_y) - 7 + s1.animate(:forwards) + # puts get :fps + fps.text = "FPS: #{(get :fps).round(3)}" +end + +show |
