smalruby 0.0.14 → 0.0.15

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d48e818f95fa90aa319dec79707a835c7bd5f1c7
4
- data.tar.gz: 9ea1edf174ee6d548e88ffd75c0783e5346da27b
3
+ metadata.gz: 76f9b584912d58f8cf10ad05bd186ace83593a0e
4
+ data.tar.gz: 308f866f3db490ba461688057a92323e52c68bcf
5
5
  SHA512:
6
- metadata.gz: 606311a7fdb4a2194678f13d7cdfc5b7e3c14fd252bfbf25bbfb0e504d8f30c8a40ec6f1aa4e2dca9d8314e4a0d5fbe60392b0a65fdc8fb8d35e108d26d168be
7
- data.tar.gz: d6b20142206d1003117fc972d8575188b7c5a1f6e2b6d5daf8e3c9b9f59ef985e06a1867099975e4db73f965bd8c1ad52147a8b784e823e59b0ab37de235a2df
6
+ metadata.gz: 2b16ce22007f1a64adec6a02e640cd8f09df3e54c02b61a61461cd6e9ccd3567e59ef2c41049faaaf6bd50f5d4120112cb81dd724c45be56cb20711718725c6e
7
+ data.tar.gz: 5740d4f464e3ab63933882bb14751ca0f4659e3c56725b28349af0414d9dc1b1d7ae1f003abdea1449e75beaa69d7b2977855f87aeba7b7f751fc7fb85285179
@@ -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
@@ -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
- txrx = Dino::TxRx.new
37
- txrx.io = opt[:device] if opt[:device]
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
@@ -1,5 +1,5 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- module Smalruby
4
- VERSION = '0.0.14'
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.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouji Takao
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-23 00:00:00.000000000 Z
11
+ date: 2014-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -182,30 +182,30 @@ dependencies:
182
182
  name: dxruby_sdl
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - '>='
185
+ - - ~>
186
186
  - !ruby/object:Gem::Version
187
- version: '0'
187
+ version: 0.0.6
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - '>='
192
+ - - ~>
193
193
  - !ruby/object:Gem::Version
194
- version: '0'
194
+ version: 0.0.6
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: dino
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
- - - '>='
199
+ - - ~>
200
200
  - !ruby/object:Gem::Version
201
- version: '0'
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: '0'
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