Skip to content

Instantly share code, notes, and snippets.

View amirrajan's full-sized avatar
💭
Working on DragonRuby Game Toolkit and RubyMotion

Amir Rajan amirrajan

💭
Working on DragonRuby Game Toolkit and RubyMotion
View GitHub Profile
@amirrajan
amirrajan / main.rb
Created June 29, 2025 03:16
DragonRuby Game Toolkit Cooking Game
class Game
attr_gtk
def initialize
@ingredients_in_hand = []
@available_ingredients = [
:flour,
:baking_soda,
:sugar,
:flour,
@amirrajan
amirrajan / main.rb
Created June 20, 2025 22:30
DragonRuby Game Toolkit Moving Walls
class Game
attr_gtk
def initialize
@dvd = {
x: 640,
y: 360,
w: 64,
h: 64,
dx: 5,
@amirrajan
amirrajan / main.rb
Created June 18, 2025 06:41
DragonRuby Game Toolkit - Fifteen Puzzle Game version 2.0
class Game
attr_gtk
def initialize
# rng is sent to Random so that everyone gets the same levels
@rng = Random.new 100
@solved_board = (1..16).to_a
# rendering size of the cell
def tick args
if Kernel.tick_count > 518
puts "#{args.state.dvd}"
GTK.slowmo! 30
end
args.state.dvd ||= { x: 640,
y: 360,
w: 64,
h: 64,
@amirrajan
amirrajan / shared_controller.rb
Created June 7, 2025 00:05
two controllers, one game
class SharedKeyDown
attr :args
def inputs
@args.inputs
end
def start
inputs.controllers.any? { |c| c.key_down.start }
end
@amirrajan
amirrajan / main.rb
Created June 5, 2025 03:20
Cutscene in DragonRuby
# creation of a game class
class Game
attr_gtk # adds arg properties to the class
def initialize
# have the hero start at the center and the npc be at the far right
@hero = { x: 640,
y: 360,
w: 80,
h: 80,
@amirrajan
amirrajan / main.rb
Last active June 9, 2025 22:56
camera with rotation matrix and circle based collision
class Game
attr_gtk
def initialize
@player = { x: 30,
y: -16,
w: 32,
h: 32,
dx: 0,
dy: 0,
@amirrajan
amirrajan / tmux.conf
Created May 20, 2025 20:22
tmux for windows (specifically clipboard)
# ~/.tmux.conf
# * brew install tmux reattach-to-user-namespace
# * C-e - Your leader <l> key.
# * <l>: - Type command not handled by shortcut keys. Eg: <l>: kill-pane ENT
# * <l>r - Reload this file/config.
# * <l>j - Select split using number jump list.
# * <l>{ - Swap splits left.
# * <l>} - Swap splits right.
# * <l>| - Create vertical split.
# * <l>- - Create orizontal split.
@amirrajan
amirrajan / .minttyrc
Created April 30, 2025 03:01
git bash minttyrc for windows
CtrlShiftShortcuts=yes
Font=Dank Mono
FontHeight=14
Black=31,33,39
Blue=77,156,238
BrightBlack= 31,33,39
BrightBlue= 77,156,238
BrightCyan= 68,168,182
BrightGreen= 134,187,98
BrightMagenta= 185,89,216
@amirrajan
amirrajan / main.rb
Created April 24, 2025 00:08
DragonRuby Game Toolkit - Spinning labels as particles
class Game
attr_gtk
def initialize
# keeps track of particle states
@particles ||= []
# keeps track of whether a render target for the specific number
# has been created already
@created_prefabs ||= {}