Skip to content

Instantly share code, notes, and snippets.

@Eric-Guo
Eric-Guo / basicgorillas.rb
Created May 28, 2021 13:19 — forked from icculus/basicgorillas.rb
DragonRuby Basic Gorillas
# This is the complete source code to Basic Gorillas:
# https://dragonruby.itch.io/basicgorillas
#
# You can tinker with this by getting a copy of DragonRuby Game Toolkit:
# https://dragonruby.org/
#
# Amir Rajan wrote this game, catch him at https://twitter.com/amirrajan !
class YouSoBasicGorillas
attr_accessor :outputs, :grid, :game, :inputs
@Eric-Guo
Eric-Guo / main.rb
Created May 30, 2021 08:50 — forked from sprite-guard/main.rb
Moving bezier curves with gaps
# The text from the gist has been loaded.
# Click the Run game! button to execute the code.
# http://fiddle.dragonruby.org?share=https://gist.github.com/amirrajan/2f63f4d2fc97a81b087e6b4e6bd5bd92
def tick args
xa = 100 + ((args.state.tick_count) % 300)
xb = 550 + ((args.state.tick_count/2) % 357)
xc = 440 + ((args.state.tick_count) % 413)
xd = 1000 - ((args.state.tick_count / 3) % 988)
@Eric-Guo
Eric-Guo / ext.c
Created May 31, 2021 23:37 — forked from oeloeloel/ext.c
DragonRuby Pixel Arrays with C Extensions. Quick and Dirty example.
/*
DragonRuby C Extension Pixel Array
Written by @Akzidenz-Grotesk (with help from @AlexDenisov & @Kenneth | CANICVS)
Demonstrates some quick and pretty dirty image filters
Loads image files into Pixel Array
Performs image manipulation every tick
Returns a modified 100x100 pixel image to DragonRuby
*/
#ifndef NULL
@Eric-Guo
Eric-Guo / main.rb
Created June 3, 2021 23:49 — forked from amirrajan/main.rb
Gauntlet written in DragonRuby Game Toolkit
class Game
attr_gtk
def tick
defaults
render
input
calc
end
@Eric-Guo
Eric-Guo / main.rb
Created June 5, 2021 22:29 — forked from icculus/main.rb
Tetris in DragonRuby, code at the end of Part 1
# This is the code as it stands at the end of
# "Let's make Tetris with DragonRuby Game Toolkit!" Part 1:
# https://www.youtube.com/watch?v=xZMwRSbC4rY
$gtk.reset
class TetrisGame
def initialize args
@args = args
@next_move = 30
@Eric-Guo
Eric-Guo / a_noble_circle_stage.rb
Created June 18, 2021 00:43 — forked from amirrajan/a_noble_circle_stage.rb
Ruby DSL for one of my platformers
# coding: utf-8
module Women
def women
{
display_name: '≈≈≈ Women ≈≈≈',
checkpoint: :women,
stage: [
'Unfortunately for Circle, he was cursed with many, many, sides.',
page_66,
{ loc: ' x ', type: Triangle },
{
"go.useLanguageServer": true,
"editor.formatOnSave": true,
"window.nativeTabs": true,
"editor.glyphMargin": false,
"editor.renderLineHighlight": "none",
"workbench.editor.tabCloseButton": "left",
"workbench.startupEditor": "newUntitledFile",
"window.autoDetectColorScheme": true,
"window.openFilesInNewWindow": "on",
@Eric-Guo
Eric-Guo / render_text.rb
Created July 28, 2021 05:18 — forked from cbilski/render_text.rb
A lazy way to wrap strings in dragonruby.
# This breaks when the characters no longer fit on the line. A smarter version would iterate using word/line boundaries
# Sample Usage:
# rect = args.layout.rect(row: 3, col: 12, w: 6, h: 7, dx: 0, dy: 0) # OBJECTIVE
# text = "OBJECTIVE:\n\nMECHs are threatening\nour CITIZENS:\n+ Bring the CITIZENS home.\n+ Destroy the MECHs."
# render_text(args, args.outputs.primitives, rect, text, 1, "/fonts/PixeloidSans.ttf")
#
def render_text(args, pipeline, rect, text, font_size, font)
work = ""
len = text.length
font_h = args.gtk.calcstringbox(text, font_size, font).y
@Eric-Guo
Eric-Guo / main.rb
Created November 12, 2021 02:56 — forked from amirrajan/main.rb
DragonRuby Game Toolkit VR - Let There Be Light
# https://www.youtube.com/watch?v=S-baJwEjUsk&ab_channel=AmirRajan
class Game
attr_gtk
def tick
grid.origin_center!
defaults
calc
render
{
inputs:
[params[:authenticity_token], request.x_csrf_token].map do |token|
Base64.urlsafe_decode64(token)
end.map do |token|
xor_byte_strings(
token[0...AUTHENTICITY_TOKEN_LENGTH],
token[AUTHENTICITY_TOKEN_LENGTH..-1]
)
end,