smalruby 0.0.14-x86-mingw32 → 0.0.15-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of smalruby might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/smalruby/character.rb +7 -0
- data/lib/smalruby/hardware/two_wheel_drive_car.rb +60 -0
- data/lib/smalruby/hardware.rb +9 -3
- data/lib/smalruby/version.rb +5 -5
- data/samples/hardware_two_wheel_drive_car.rb +31 -0
- data/samples/tree.rb +53 -0
- data/smalruby.gemspec +2 -2
- metadata +9 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39f0d10c95336ce5758416b2e1532bb54d6afae6
|
4
|
+
data.tar.gz: 8a2501660615da3974f957144bea28c52c6e2012
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9db6d5935373c7fe352a8261c867338cf2aecba1f0296eb29c5adfbe6c4bfa0d1cc0686901e6c1ade184c41901376d41a3db20b88883ab2f097bd81169f365c6
|
7
|
+
data.tar.gz: 3a736a2847ce564b91f68e9f2cbed297cebf7c569d5ad3f8564e3ad64f38d0902523aba070a8641830be3e3bb941322958d83af41dfa18ab450155a99681aa62
|
data/lib/smalruby/character.rb
CHANGED
@@ -18,6 +18,7 @@ module Smalruby
|
|
18
18
|
attr_accessor :event_handlers
|
19
19
|
attr_accessor :threads
|
20
20
|
attr_accessor :checking_hit_targets
|
21
|
+
attr_accessor :angle unless Util.windows?
|
21
22
|
|
22
23
|
def initialize(option = {})
|
23
24
|
defaults = {
|
@@ -38,6 +39,7 @@ module Smalruby
|
|
38
39
|
@event_handlers = {}
|
39
40
|
@threads = []
|
40
41
|
@checking_hit_targets = []
|
42
|
+
@angle = 0 unless Util.windows?
|
41
43
|
|
42
44
|
self.scale_x = 1.0
|
43
45
|
self.scale_y = 1.0
|
@@ -213,6 +215,11 @@ module Smalruby
|
|
213
215
|
Hardware.create_hardware(Hardware::Servo, pin)
|
214
216
|
end
|
215
217
|
|
218
|
+
# 2WD車
|
219
|
+
def two_wheel_drive_car(pin)
|
220
|
+
Hardware.create_hardware(Hardware::TwoWheelDriveCar, pin)
|
221
|
+
end
|
222
|
+
|
216
223
|
# ボタン
|
217
224
|
def button(pin)
|
218
225
|
Hardware.create_hardware(Hardware::Button, pin)
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'smalruby/hardware'
|
3
|
+
|
4
|
+
module Smalruby
|
5
|
+
module Hardware
|
6
|
+
# 2WD車のモーターを表現するクラス
|
7
|
+
class TwoWheelDriveCar < Dino::Components::BaseComponent
|
8
|
+
def initialize(options)
|
9
|
+
pin = Pin.smalruby_to_dino(options[:pin])
|
10
|
+
case pin
|
11
|
+
when 2..10
|
12
|
+
super(board: world.board, pin: (pin...(pin + 4)).to_a)
|
13
|
+
else
|
14
|
+
fail "モーターのピン番号が間違っています: {options[:pin]}"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# 前進する
|
19
|
+
def forward
|
20
|
+
digital_write_pins(true, false, true, false)
|
21
|
+
end
|
22
|
+
|
23
|
+
# 後退する
|
24
|
+
def backward
|
25
|
+
digital_write_pins(false, true, false, true)
|
26
|
+
end
|
27
|
+
|
28
|
+
# 左に曲がる
|
29
|
+
def turn_left
|
30
|
+
digital_write_pins(false, true, true, false)
|
31
|
+
end
|
32
|
+
|
33
|
+
# 右に曲がる
|
34
|
+
def turn_right
|
35
|
+
digital_write_pins(true, false, false, true)
|
36
|
+
end
|
37
|
+
|
38
|
+
# 停止する
|
39
|
+
def stop
|
40
|
+
digital_write_pins(false, false, false, false)
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def after_initialize(options = {})
|
46
|
+
pins.each do |pin|
|
47
|
+
set_pin_mode(pin, :out)
|
48
|
+
end
|
49
|
+
stop
|
50
|
+
end
|
51
|
+
|
52
|
+
def digital_write_pins(*level_flags)
|
53
|
+
level_flags.each.with_index do |level_flag, i|
|
54
|
+
level = level_flag ? Dino::Board::HIGH : Dino::Board::LOW
|
55
|
+
digital_write(pins[i], level)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/lib/smalruby/hardware.rb
CHANGED
@@ -13,6 +13,7 @@ module Smalruby
|
|
13
13
|
autoload :RgbLedAnode
|
14
14
|
autoload :RgbLedCathode
|
15
15
|
autoload :Servo
|
16
|
+
autoload :TwoWheelDriveCar
|
16
17
|
|
17
18
|
autoload :Button
|
18
19
|
autoload :Sensor
|
@@ -29,12 +30,17 @@ module Smalruby
|
|
29
30
|
fail 'already started.' if @started
|
30
31
|
|
31
32
|
defaults = {
|
32
|
-
device: nil
|
33
|
+
device: nil,
|
34
|
+
baud: 115_200
|
33
35
|
}
|
34
36
|
opt = Util.process_options(options, defaults)
|
35
37
|
|
36
|
-
|
37
|
-
|
38
|
+
if Dino::VERSION >= '0.11'
|
39
|
+
txrx = Dino::TxRx.new(opt)
|
40
|
+
elsif Dino::VERSION >= '0.10'
|
41
|
+
txrx = Dino::TxRx.new
|
42
|
+
txrx.io = opt[:device] if opt[:device]
|
43
|
+
end
|
38
44
|
world.board = Dino::Board.new(txrx)
|
39
45
|
|
40
46
|
@initialized_hardware = true
|
data/lib/smalruby/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
|
3
|
-
module Smalruby
|
4
|
-
VERSION =
|
5
|
-
end
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
module Smalruby
|
4
|
+
VERSION = '0.0.15'
|
5
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
DESCRIPTION = <<EOS
|
4
|
+
2WD車のタイヤ(モーター)を操作します
|
5
|
+
EOS
|
6
|
+
|
7
|
+
# デジタルの2番・3番ピンに左のモーター、4番・5番ピンに右のモーターを接
|
8
|
+
# 続してください。
|
9
|
+
|
10
|
+
require 'smalruby'
|
11
|
+
|
12
|
+
init_hardware
|
13
|
+
|
14
|
+
stage1 = Stage.new(color: 'white')
|
15
|
+
|
16
|
+
stage1.on(:start) do
|
17
|
+
draw_font(string: DESCRIPTION, color: 'black')
|
18
|
+
|
19
|
+
loop do
|
20
|
+
two_wheel_drive_car('D2').forward
|
21
|
+
sleep(3)
|
22
|
+
two_wheel_drive_car('D2').backward
|
23
|
+
sleep(3)
|
24
|
+
two_wheel_drive_car('D2').turn_left
|
25
|
+
sleep(3)
|
26
|
+
two_wheel_drive_car('D2').turn_right
|
27
|
+
sleep(3)
|
28
|
+
two_wheel_drive_car('D2').stop
|
29
|
+
sleep(3)
|
30
|
+
end
|
31
|
+
end
|
data/samples/tree.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'smalruby'
|
3
|
+
|
4
|
+
# @author: Akihiro Sada
|
5
|
+
# @license: MIT Lisence
|
6
|
+
class Tree
|
7
|
+
def initialize(canvas)
|
8
|
+
@x = 320
|
9
|
+
@y = 480
|
10
|
+
@radian = -Math::PI / 2
|
11
|
+
@canvas = canvas
|
12
|
+
end
|
13
|
+
|
14
|
+
def draw(level)
|
15
|
+
if level <= 0
|
16
|
+
return
|
17
|
+
end
|
18
|
+
length = level * 5
|
19
|
+
forward(length)
|
20
|
+
degree = 20
|
21
|
+
turn(degree)
|
22
|
+
draw(level - 1)
|
23
|
+
turn(-degree * 2)
|
24
|
+
draw(level - 1)
|
25
|
+
turn(degree)
|
26
|
+
backward(length)
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def forward(length)
|
32
|
+
x = @x
|
33
|
+
y = @y
|
34
|
+
@x += Math.cos(@radian) * length
|
35
|
+
@y += Math.sin(@radian) * length
|
36
|
+
@canvas.line(x1: x, y1: y, x2: @x, y2: @y, color: "white")
|
37
|
+
end
|
38
|
+
|
39
|
+
def backward(length)
|
40
|
+
@x -= Math.cos(@radian) * length
|
41
|
+
@y -= Math.sin(@radian) * length
|
42
|
+
end
|
43
|
+
|
44
|
+
def turn(degree)
|
45
|
+
@radian += degree * Math::PI / 180
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
background = Canvas.new
|
50
|
+
tree = Tree.new(background)
|
51
|
+
background.on(:start) do
|
52
|
+
tree.draw(12)
|
53
|
+
end
|
data/smalruby.gemspec
CHANGED
@@ -40,7 +40,7 @@ Gem::Specification.new do |spec|
|
|
40
40
|
if is_windows
|
41
41
|
spec.add_runtime_dependency 'dxruby'
|
42
42
|
else
|
43
|
-
spec.add_runtime_dependency 'dxruby_sdl'
|
43
|
+
spec.add_runtime_dependency 'dxruby_sdl', '~> 0.0.6'
|
44
44
|
end
|
45
|
-
spec.add_runtime_dependency 'dino'
|
45
|
+
spec.add_runtime_dependency 'dino', '~> 0.11.2'
|
46
46
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smalruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.15
|
5
5
|
platform: x86-mingw32
|
6
6
|
authors:
|
7
7
|
- Kouji Takao
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -196,16 +196,16 @@ dependencies:
|
|
196
196
|
name: dino
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
198
198
|
requirements:
|
199
|
-
- -
|
199
|
+
- - ~>
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version:
|
201
|
+
version: 0.11.2
|
202
202
|
type: :runtime
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
|
-
- -
|
206
|
+
- - ~>
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version:
|
208
|
+
version: 0.11.2
|
209
209
|
description: smalruby is a 2D game development library. This is part of "Smalruby"
|
210
210
|
project that is a learning ruby programming environment for kids.
|
211
211
|
email:
|
@@ -260,6 +260,7 @@ files:
|
|
260
260
|
- lib/smalruby/hardware/rgb_led_cathode.rb
|
261
261
|
- lib/smalruby/hardware/sensor.rb
|
262
262
|
- lib/smalruby/hardware/servo.rb
|
263
|
+
- lib/smalruby/hardware/two_wheel_drive_car.rb
|
263
264
|
- lib/smalruby/stage.rb
|
264
265
|
- lib/smalruby/util.rb
|
265
266
|
- lib/smalruby/version.rb
|
@@ -278,8 +279,10 @@ files:
|
|
278
279
|
- samples/hardware_rgb_led_cathode.rb
|
279
280
|
- samples/hardware_sensor.rb
|
280
281
|
- samples/hardware_servo.rb
|
282
|
+
- samples/hardware_two_wheel_drive_car.rb
|
281
283
|
- samples/hit_car.rb
|
282
284
|
- samples/piano.rb
|
285
|
+
- samples/tree.rb
|
283
286
|
- smalruby.gemspec
|
284
287
|
- spec/lib/smalruby/color_spec.rb
|
285
288
|
- spec/lib/smalruby/world_spec.rb
|