Created
April 11, 2022 14:23
-
-
Save thomasjslone/bf25e53a3ad17f697043c49ccb7d1009 to your computer and use it in GitHub Desktop.
Ruby 2d Demo featuring a movable square with multikey listeners and a main background thread.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'ruby2d' | |
#window config | |
set width: 300, height: 200 | |
set title: "" | |
set background: 'black' | |
#set fullscreen: true | |
@square = Square.new(x: 10, y: 20, size: 25, color: 'blue') | |
# Define the initial speed (and direction). | |
@x_speed = 0 | |
@y_speed = 0 | |
@t=Thread.new{loop do ; sleep 1 ; puts "hi"; end} | |
# Define what happens when a specific key is pressed. | |
# Each keypress influences on the movement along the x and y axis. | |
on :key_down do |event| | |
if event.key == 'left' | |
@x_speed = -2 | |
#@y_speed = 0 | |
end | |
end | |
on :key_down do |event| | |
if event.key == 'right' | |
@x_speed = 2 | |
#@y_speed = 0 | |
end | |
end | |
on :key_down do |event| | |
if event.key == 'up' | |
#@x_speed = 0 | |
@y_speed = -2 | |
end | |
end | |
on :key_down do |event| | |
if event.key == 'down' | |
#@x_speed = 0 | |
@y_speed = 2 | |
end | |
end | |
on :key_up do |event| | |
if event.key == 'left' | |
@x_speed = 0 | |
#@y_speed = 0 | |
end | |
end | |
on :key_up do |event| | |
if event.key == 'right' | |
@x_speed = 0 | |
#@y_speed = 0 | |
end | |
end | |
on :key_up do |event| | |
if event.key == 'up' | |
#@x_speed = 0 | |
@y_speed = 0 | |
end | |
end | |
on :key_up do |event| | |
if event.key == 'down' | |
#@x_speed = 0 | |
@y_speed = 0 | |
end | |
end | |
update do | |
@square.x += @x_speed | |
@square.y += @y_speed | |
end | |
show |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment