Sha256: 7d8a3bf7e0b3a77a8f9a79672e30c7a103b88f0eadf1be5b8754c71dea9944ef
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 KB
Contents
# The Nature of Code # PBox2D example # An uneven surface require 'pbox2d' require_relative 'lib/surface' attr_reader :surface, :box2d, :particles def setup size(500, 300) smooth 4 # Initialize box2d physics and create the world @box2d = Box2D.new(self) box2d.init_options(gravity: [0, -20]) box2d.create_world # to later set a custom gravity # box2d.gravity([0, -20]) # Create the empty list @particles = [] # Create the surface @surface = Surface.new(self) end def draw # If the mouse is pressed, we make new particles # We must always step through time! background(138, 66, 54) # Draw the surface surface.display # NB ? reqd to call mouse_pressed value, else method gets called. particles << Particle.new(self, mouse_x, mouse_y, rand(2.0..6)) if mouse_pressed? # Draw all particles particles.each(&:display) # Particles that leave the screen, we delete them # (note they have to be deleted from both the box2d world and our list particles.reject!(&:done) # Just drawing the framerate to see how many particles it can handle fill(0) text("framerate: #{frame_rate.to_i}", 12, 16) end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pbox2d-0.4.1-java | examples/bumpy_surface_noise.rb |
pbox2d-0.4.0-java | examples/bumpy_surface_noise.rb |