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.cs
Last active June 30, 2025 22:29
C# method missing
public class Person : Gemini
{
//define a method called MethodMissing taking in one parameter
dynamic MethodMissing(dynamic callInfo)
{
//check to see if the method being called ends in Html
if(callInfo.Name.EndsWith("Html"))
{
//if it does, add a method on the fly that returns
//the html encoded version of the parsed property
@amirrajan
amirrajan / main.rb
Last active June 29, 2025 19:41
DragonRuby Game Toolkit - Hooke's Law, Coulomb's Law
def boot args
args.state = {}
end
def tick args
args.state.center_screen ||= { x: 640, y: 360 }
args.state.particles ||= [
{ x: 300,
y: 300,
w: 16,
@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.