Skip to content

Instantly share code, notes, and snippets.

@mcfiredrill
Created September 17, 2012 08:00
Show Gist options
  • Save mcfiredrill/3736102 to your computer and use it in GitHub Desktop.
Save mcfiredrill/3736102 to your computer and use it in GitHub Desktop.
cube world
require 'ruby-processing'
class Cubey< Processing::App
#load_libraries 'boids', 'opengl'
load_libraries 'opengl'
import "processing.opengl" if library_loaded? "opengl"
#def setup_opengl
# render_mode(OPENGL)
#end
def setup
#library_loaded?(:opengl) ? setup_opengl : render_mode(P3D)
#render_mode(OPENGL)
render_mode(P3D)
color_mode RGB, 255
frameRate 60
lights
@y = 0.1
@x = 0.2
@num_boxes = 100
@boxes = []
@colors = []
@yellow = 0xf0,0xff,0x01
@pink = 0xff,0x65,0xbc
@blue = 0x21,0xe3,0xce
@green = 0x5c,0xf9,0x63
@gray = 0x5c,0xf9,0x63
@mycolors = [@yellow, @pink, @blue, @green, @gray]
(0..@num_boxes).each do
@boxes << random(50)
@colors << @mycolors[random(@mycolors.length)]
end
fill 255
#stroke(color(44,48,32))
end
def draw
background 0xff,0xff,0xff
#noStroke
translate width/2.0, height/2.0, -100
#scale 90
scale 2
#10.times do
(0..@num_boxes).each do |i|
translate random(100), random(50), 0
rotateY @y
rotateX @x
# puts @y
# box @boxes[i]
puts @colors[i]
mybox(@boxes[i], @colors[i])
end
@y += 0.01
@x += 0.01
#end
end
def clamp(var, num)
if(var > num)
var = 0
elsif(var < 0)
var = num
end
return var
end
def mybox(size, color)
beginShape(QUADS);
fill(*color)
vertex(-size, -size, size);
vertex( size, -size, size);
vertex( size, size, size);
vertex(-size, size, size);
endShape();
# Back
beginShape(QUADS);
fill(*color);
vertex( size, -size, -size);
vertex(-size, -size, -size);
vertex(-size, size, -size);
vertex( size, size, -size);
endShape();
# Bottom
beginShape(QUADS);
fill(*color);
vertex(-size, size, size);
vertex( size, size, size);
vertex( size, size, -size);
vertex(-size, size, -size);
endShape();
# Top
beginShape(QUADS);
fill(*color);
vertex(-size, -size, -size);
vertex( size, -size, -size);
vertex( size, -size, size);
vertex(-size, -size, size);
endShape();
# Right
beginShape(QUADS);
fill(*color);
vertex( size, -size, size);
vertex( size, -size, -size);
vertex( size, size, -size);
vertex( size, size, size);
endShape();
# Left
beginShape(QUADS);
fill(*color);
vertex(-size, -size, -size);
vertex(-size, -size, size);
vertex(-size, size, size);
vertex(-size, size, -size);
endShape();
end
end
Cubey.new :title => "Cubey", :width => 800, :height => 600, :fullscreen => false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment