smalruby-editor 0.1.24-x86-mingw32 → 0.2.0-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-editor might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Guardfile +9 -0
- data/app/assets/javascripts/blocks/hardware.js.coffee.erb +147 -62
- data/app/assets/javascripts/blocks/sensing.js.coffee.erb +4 -0
- data/app/assets/javascripts/msg/en_us.js +34 -12
- data/app/assets/javascripts/msg/ja.js +35 -15
- data/app/helpers/editor_helper.rb +2 -1
- data/app/models/concerns/ruby_to_block/block/{hardware_button_down_or_up.rb → hardware_button_pressed_or_released.rb} +3 -3
- data/app/models/concerns/ruby_to_block/block/{hardware_led_on.rb → hardware_led_turn_off.rb} +2 -2
- data/app/models/concerns/ruby_to_block/block/{hardware_led_off.rb → hardware_led_turn_on.rb} +2 -2
- data/app/models/concerns/ruby_to_block/block/hardware_operation.rb +2 -0
- data/app/models/concerns/ruby_to_block/block/{hardware_rgb_led_on.rb → hardware_rgb_led_set_color.rb} +2 -2
- data/app/models/concerns/ruby_to_block/block/{hardware_rgb_led_off.rb → hardware_rgb_led_turn_off.rb} +2 -2
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_action.rb +22 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_action_with_sec.rb +24 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_led_turn_on_or_off.rb +22 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_light_sensor_value.rb +28 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_touch_sensor_pressed_or_released.rb +29 -0
- data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_commands.rb +3 -1
- data/app/views/editor/_toolbox.html.haml +30 -17
- data/app/views/layouts/application.html.erb +3 -1
- data/config/locales/en.yml +1 -0
- data/config/locales/ja.yml +1 -0
- data/lib/smalruby_editor/blockly_message_helper.rb +2 -1
- data/lib/smalruby_editor/version.rb +1 -1
- data/lib/tasks/release.rake +0 -0
- data/public/assets/{application-fda71a642d958ffbaf90185c471d6e51.js → application-b305a6ea9e7c045a8e170bbf6fb09dd1.js} +3 -3
- data/public/assets/{application-fda71a642d958ffbaf90185c471d6e51.js.gz → application-b305a6ea9e7c045a8e170bbf6fb09dd1.js.gz} +0 -0
- data/public/assets/{manifest-1a9856df207640ec658271db34b30dbb.json → manifest-ebd584fa603a378faf780f013e6a447d.json} +1 -1
- data/public/assets/msg/en_us-c6f8f0084f38560bf933b742ede64a52.js +1 -0
- data/public/assets/msg/en_us-c6f8f0084f38560bf933b742ede64a52.js.gz +0 -0
- data/public/assets/msg/ja-3703e6ceebd04ae1f08b0e871800539d.js +1 -0
- data/public/assets/msg/ja-3703e6ceebd04ae1f08b0e871800539d.js.gz +0 -0
- data/smalruby-editor.gemspec +1 -1
- data/spec/acceptance/block_mode/blocks/hardware/{button_down_or_up.feature → button_pressed_or_released.feature} +15 -15
- data/spec/acceptance/block_mode/blocks/hardware/led_turn_off.feature +67 -0
- data/spec/acceptance/block_mode/blocks/hardware/led_turn_on.feature +67 -0
- data/spec/acceptance/block_mode/blocks/hardware/rgb_led_set_color.feature +79 -0
- data/spec/acceptance/block_mode/blocks/hardware/{button_not_use_pullup.feature → rgb_led_turn_off.feature} +30 -18
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action.feature +107 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action_with_sec.feature +151 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_led_turn_on_or_off.feature +73 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_light_sensor_value.feature +92 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_motor_speed.feature +116 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_touch_sensor_pressed_or_released.feature +108 -0
- data/spec/models/concerns/ruby_to_block/block/hardware_spec.rb +359 -36
- data/spec/models/concerns/ruby_to_block_spec.rb +8 -8
- data/spec/steps/block_mode_steps.rb +8 -0
- metadata +43 -35
- data/app/models/concerns/ruby_to_block/block/hardware_button_not_use_pullup.rb +0 -18
- data/app/models/concerns/ruby_to_block/block/hardware_on_button_down_or_up.rb +0 -19
- data/app/models/concerns/ruby_to_block/block/hardware_on_sensor_change.rb +0 -17
- data/public/assets/msg/en_us-893d970ff8061fbe7459f009582c4df5.js +0 -1
- data/public/assets/msg/en_us-893d970ff8061fbe7459f009582c4df5.js.gz +0 -0
- data/public/assets/msg/ja-4d22bd0341f464f9d1b9f373121bce6d.js +0 -1
- data/public/assets/msg/ja-4d22bd0341f464f9d1b9f373121bce6d.js.gz +0 -0
- data/spec/acceptance/block_mode/blocks/hardware/led_off.feature +0 -75
- data/spec/acceptance/block_mode/blocks/hardware/led_on.feature +0 -75
- data/spec/acceptance/block_mode/blocks/hardware/on_button_down_or_up.feature +0 -87
- data/spec/acceptance/block_mode/blocks/hardware/on_sensor_change.feature +0 -81
- data/spec/acceptance/block_mode/blocks/hardware/rgb_led_off.feature +0 -81
- data/spec/acceptance/block_mode/blocks/hardware/rgb_led_on.feature +0 -87
@@ -423,13 +423,13 @@ frog1 = Character.new(costume: "frog1.png", x: 261, y: 191, angle: 0)
|
|
423
423
|
|
424
424
|
frog1.on(:click) do
|
425
425
|
say(message: "ライトをぴかっとさせるでよ♪")
|
426
|
-
rgb_led_anode("D3").
|
426
|
+
rgb_led_anode("D3").color = [51, 51, 255]
|
427
427
|
sleep(1)
|
428
|
-
rgb_led_anode("D3").
|
428
|
+
rgb_led_anode("D3").color = [255, 255, 153]
|
429
429
|
sleep(1)
|
430
|
-
rgb_led_anode("D3").
|
430
|
+
rgb_led_anode("D3").color = [255, 0, 0]
|
431
431
|
sleep(1)
|
432
|
-
rgb_led_anode("D3").
|
432
|
+
rgb_led_anode("D3").turn_off
|
433
433
|
say(message: "")
|
434
434
|
end
|
435
435
|
EOS
|
@@ -453,7 +453,7 @@ end
|
|
453
453
|
</block>
|
454
454
|
</value>
|
455
455
|
<next>
|
456
|
-
<block type="
|
456
|
+
<block type="hardware_rgb_led_set_color">
|
457
457
|
<field name="AC">anode</field>
|
458
458
|
<field name="PIN">D3</field>
|
459
459
|
<field name="COLOUR">#3333ff</field>
|
@@ -465,7 +465,7 @@ end
|
|
465
465
|
</block>
|
466
466
|
</value>
|
467
467
|
<next>
|
468
|
-
<block type="
|
468
|
+
<block type="hardware_rgb_led_set_color">
|
469
469
|
<field name="AC">anode</field>
|
470
470
|
<field name="PIN">D3</field>
|
471
471
|
<field name="COLOUR">#ffff99</field>
|
@@ -477,7 +477,7 @@ end
|
|
477
477
|
</block>
|
478
478
|
</value>
|
479
479
|
<next>
|
480
|
-
<block type="
|
480
|
+
<block type="hardware_rgb_led_set_color">
|
481
481
|
<field name="AC">anode</field>
|
482
482
|
<field name="PIN">D3</field>
|
483
483
|
<field name="COLOUR">#ff0000</field>
|
@@ -489,7 +489,7 @@ end
|
|
489
489
|
</block>
|
490
490
|
</value>
|
491
491
|
<next>
|
492
|
-
<block type="
|
492
|
+
<block type="hardware_rgb_led_turn_off">
|
493
493
|
<field name="AC">anode</field>
|
494
494
|
<field name="PIN">D3</field>
|
495
495
|
<next>
|
@@ -50,6 +50,14 @@ step '次のキャラクターを追加する:' do |table|
|
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
+
step 'キャラクターcar1を追加する' do
|
54
|
+
table = Turnip::Table.new([
|
55
|
+
%w(name costumes x y angle),
|
56
|
+
%w(car1 car1.png 0 0 0),
|
57
|
+
])
|
58
|
+
step '次のキャラクターを追加する:', table
|
59
|
+
end
|
60
|
+
|
53
61
|
step '次のXMLと同等のブロックが配置されていること:' do |xml|
|
54
62
|
expect(page.evaluate_script('Smalruby.dumpXml()')).to eq(xml)
|
55
63
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smalruby-editor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
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: 2015-01-
|
11
|
+
date: 2015-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -184,14 +184,14 @@ dependencies:
|
|
184
184
|
requirements:
|
185
185
|
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version: 0.
|
187
|
+
version: 0.1.1
|
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.1.1
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: bundler
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -316,20 +316,22 @@ files:
|
|
316
316
|
- app/models/concerns/ruby_to_block/block/events_on_click.rb
|
317
317
|
- app/models/concerns/ruby_to_block/block/events_on_key_push_or_down.rb
|
318
318
|
- app/models/concerns/ruby_to_block/block/events_on_start.rb
|
319
|
-
- app/models/concerns/ruby_to_block/block/
|
320
|
-
- app/models/concerns/ruby_to_block/block/hardware_button_not_use_pullup.rb
|
319
|
+
- app/models/concerns/ruby_to_block/block/hardware_button_pressed_or_released.rb
|
321
320
|
- app/models/concerns/ruby_to_block/block/hardware_init_hardware.rb
|
322
|
-
- app/models/concerns/ruby_to_block/block/
|
323
|
-
- app/models/concerns/ruby_to_block/block/
|
321
|
+
- app/models/concerns/ruby_to_block/block/hardware_led_turn_off.rb
|
322
|
+
- app/models/concerns/ruby_to_block/block/hardware_led_turn_on.rb
|
324
323
|
- app/models/concerns/ruby_to_block/block/hardware_motor_driver.rb
|
325
324
|
- app/models/concerns/ruby_to_block/block/hardware_motor_driver_set_speed.rb
|
326
325
|
- app/models/concerns/ruby_to_block/block/hardware_motor_driver_speed.rb
|
327
|
-
- app/models/concerns/ruby_to_block/block/hardware_on_button_down_or_up.rb
|
328
|
-
- app/models/concerns/ruby_to_block/block/hardware_on_sensor_change.rb
|
329
326
|
- app/models/concerns/ruby_to_block/block/hardware_operation.rb
|
330
|
-
- app/models/concerns/ruby_to_block/block/
|
331
|
-
- app/models/concerns/ruby_to_block/block/
|
327
|
+
- app/models/concerns/ruby_to_block/block/hardware_rgb_led_set_color.rb
|
328
|
+
- app/models/concerns/ruby_to_block/block/hardware_rgb_led_turn_off.rb
|
332
329
|
- app/models/concerns/ruby_to_block/block/hardware_sensor_value.rb
|
330
|
+
- app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_action.rb
|
331
|
+
- app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_action_with_sec.rb
|
332
|
+
- app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_led_turn_on_or_off.rb
|
333
|
+
- app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_light_sensor_value.rb
|
334
|
+
- app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_touch_sensor_pressed_or_released.rb
|
333
335
|
- app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car.rb
|
334
336
|
- app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_commands.rb
|
335
337
|
- app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_run.rb
|
@@ -440,10 +442,10 @@ files:
|
|
440
442
|
- public/422.html
|
441
443
|
- public/500.html
|
442
444
|
- public/apple-touch-icon.png
|
445
|
+
- public/assets/application-b305a6ea9e7c045a8e170bbf6fb09dd1.js
|
446
|
+
- public/assets/application-b305a6ea9e7c045a8e170bbf6fb09dd1.js.gz
|
443
447
|
- public/assets/application-d5358d75a2c4e570c749b333c59b55ab.css
|
444
448
|
- public/assets/application-d5358d75a2c4e570c749b333c59b55ab.css.gz
|
445
|
-
- public/assets/application-fda71a642d958ffbaf90185c471d6e51.js
|
446
|
-
- public/assets/application-fda71a642d958ffbaf90185c471d6e51.js.gz
|
447
449
|
- public/assets/blockly/msg/js/en_us-6f7333af29688596ef863fa36a22cb41.js
|
448
450
|
- public/assets/blockly/msg/js/en_us-6f7333af29688596ef863fa36a22cb41.js.gz
|
449
451
|
- public/assets/blockly/msg/js/ja-d2cbf808bda8180571bc5f39141a98fe.js
|
@@ -464,11 +466,11 @@ files:
|
|
464
466
|
- public/assets/jquery-ui/ui-icons_888888_256x240-ce584ffa171c3ea9a018cf0d7bec65c8.png
|
465
467
|
- public/assets/jquery-ui/ui-icons_cd0a0a_256x240-747e96029e8dedcabc224e5f7d1f2ede.png
|
466
468
|
- public/assets/loading-e77296be32d066d3e29d3bf9803fa417.gif
|
467
|
-
- public/assets/manifest-
|
468
|
-
- public/assets/msg/en_us-
|
469
|
-
- public/assets/msg/en_us-
|
470
|
-
- public/assets/msg/ja-
|
471
|
-
- public/assets/msg/ja-
|
469
|
+
- public/assets/manifest-ebd584fa603a378faf780f013e6a447d.json
|
470
|
+
- public/assets/msg/en_us-c6f8f0084f38560bf933b742ede64a52.js
|
471
|
+
- public/assets/msg/en_us-c6f8f0084f38560bf933b742ede64a52.js.gz
|
472
|
+
- public/assets/msg/ja-3703e6ceebd04ae1f08b0e871800539d.js
|
473
|
+
- public/assets/msg/ja-3703e6ceebd04ae1f08b0e871800539d.js.gz
|
472
474
|
- public/assets/progressbar-ee8fb1222f286f625bbf7332844a6a0c.gif
|
473
475
|
- public/blockly/media/1x1.gif
|
474
476
|
- public/blockly/media/click.mp3
|
@@ -538,19 +540,22 @@ files:
|
|
538
540
|
- spec/acceptance/block_mode/blocks/events/on_hit.feature
|
539
541
|
- spec/acceptance/block_mode/blocks/events/on_key_push_or_down.feature
|
540
542
|
- spec/acceptance/block_mode/blocks/events/on_start.feature
|
541
|
-
- spec/acceptance/block_mode/blocks/hardware/
|
542
|
-
- spec/acceptance/block_mode/blocks/hardware/button_not_use_pullup.feature
|
543
|
+
- spec/acceptance/block_mode/blocks/hardware/button_pressed_or_released.feature
|
543
544
|
- spec/acceptance/block_mode/blocks/hardware/init_hardware.feature
|
544
|
-
- spec/acceptance/block_mode/blocks/hardware/
|
545
|
-
- spec/acceptance/block_mode/blocks/hardware/
|
545
|
+
- spec/acceptance/block_mode/blocks/hardware/led_turn_off.feature
|
546
|
+
- spec/acceptance/block_mode/blocks/hardware/led_turn_on.feature
|
546
547
|
- spec/acceptance/block_mode/blocks/hardware/motor_driver.feature
|
547
548
|
- spec/acceptance/block_mode/blocks/hardware/motor_driver_speed.feature
|
548
|
-
- spec/acceptance/block_mode/blocks/hardware/
|
549
|
-
- spec/acceptance/block_mode/blocks/hardware/
|
550
|
-
- spec/acceptance/block_mode/blocks/hardware/rgb_led_off.feature
|
551
|
-
- spec/acceptance/block_mode/blocks/hardware/rgb_led_on.feature
|
549
|
+
- spec/acceptance/block_mode/blocks/hardware/rgb_led_set_color.feature
|
550
|
+
- spec/acceptance/block_mode/blocks/hardware/rgb_led_turn_off.feature
|
552
551
|
- spec/acceptance/block_mode/blocks/hardware/sensor_value.feature
|
553
552
|
- spec/acceptance/block_mode/blocks/hardware/servo_set_position.feature
|
553
|
+
- spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action.feature
|
554
|
+
- spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action_with_sec.feature
|
555
|
+
- spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_led_turn_on_or_off.feature
|
556
|
+
- spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_light_sensor_value.feature
|
557
|
+
- spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_motor_speed.feature
|
558
|
+
- spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_touch_sensor_pressed_or_released.feature
|
554
559
|
- spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car.feature
|
555
560
|
- spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car_speed.feature
|
556
561
|
- spec/acceptance/block_mode/blocks/looks/hide.feature
|
@@ -707,19 +712,22 @@ test_files:
|
|
707
712
|
- spec/acceptance/block_mode/blocks/events/on_hit.feature
|
708
713
|
- spec/acceptance/block_mode/blocks/events/on_key_push_or_down.feature
|
709
714
|
- spec/acceptance/block_mode/blocks/events/on_start.feature
|
710
|
-
- spec/acceptance/block_mode/blocks/hardware/
|
711
|
-
- spec/acceptance/block_mode/blocks/hardware/button_not_use_pullup.feature
|
715
|
+
- spec/acceptance/block_mode/blocks/hardware/button_pressed_or_released.feature
|
712
716
|
- spec/acceptance/block_mode/blocks/hardware/init_hardware.feature
|
713
|
-
- spec/acceptance/block_mode/blocks/hardware/
|
714
|
-
- spec/acceptance/block_mode/blocks/hardware/
|
717
|
+
- spec/acceptance/block_mode/blocks/hardware/led_turn_off.feature
|
718
|
+
- spec/acceptance/block_mode/blocks/hardware/led_turn_on.feature
|
715
719
|
- spec/acceptance/block_mode/blocks/hardware/motor_driver.feature
|
716
720
|
- spec/acceptance/block_mode/blocks/hardware/motor_driver_speed.feature
|
717
|
-
- spec/acceptance/block_mode/blocks/hardware/
|
718
|
-
- spec/acceptance/block_mode/blocks/hardware/
|
719
|
-
- spec/acceptance/block_mode/blocks/hardware/rgb_led_off.feature
|
720
|
-
- spec/acceptance/block_mode/blocks/hardware/rgb_led_on.feature
|
721
|
+
- spec/acceptance/block_mode/blocks/hardware/rgb_led_set_color.feature
|
722
|
+
- spec/acceptance/block_mode/blocks/hardware/rgb_led_turn_off.feature
|
721
723
|
- spec/acceptance/block_mode/blocks/hardware/sensor_value.feature
|
722
724
|
- spec/acceptance/block_mode/blocks/hardware/servo_set_position.feature
|
725
|
+
- spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action.feature
|
726
|
+
- spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action_with_sec.feature
|
727
|
+
- spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_led_turn_on_or_off.feature
|
728
|
+
- spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_light_sensor_value.feature
|
729
|
+
- spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_motor_speed.feature
|
730
|
+
- spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_touch_sensor_pressed_or_released.feature
|
723
731
|
- spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car.feature
|
724
732
|
- spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car_speed.feature
|
725
733
|
- spec/acceptance/block_mode/blocks/looks/hide.feature
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module RubyToBlock
|
2
|
-
module Block
|
3
|
-
class HardwareButtonNotUsePullup < CharacterMethodCall
|
4
|
-
include HardwareOperation
|
5
|
-
|
6
|
-
blocknize '^\s*' + CHAR_RE +
|
7
|
-
'button\(' + DIO_PIN_RE + '\)\.not_use_pullup\s*$',
|
8
|
-
statement: true
|
9
|
-
|
10
|
-
def self.process_match_data(md, context)
|
11
|
-
md2 = regexp.match(md[type])
|
12
|
-
add_character_method_call_block(context, md2[1],
|
13
|
-
new(fields: { PIN: md2[2] }))
|
14
|
-
true
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module RubyToBlock
|
2
|
-
module Block
|
3
|
-
class HardwareOnButtonDownOrUp < CharacterEvent
|
4
|
-
include HardwareOperation
|
5
|
-
|
6
|
-
blocknize '^\s*' + CHAR_RE +
|
7
|
-
'on\(:button_(down|up),' + DIO_PIN_RE + '\)\s+' +
|
8
|
-
'do\s*$',
|
9
|
-
statement: true, indent: true
|
10
|
-
|
11
|
-
def self.process_match_data(md, context)
|
12
|
-
md2 = regexp.match(md[type])
|
13
|
-
add_character_event_blocks(context, md2[1],
|
14
|
-
new(fields: { PIN: md2[3], DOU: md2[2] }))
|
15
|
-
true
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module RubyToBlock
|
2
|
-
module Block
|
3
|
-
class HardwareOnSensorChange < CharacterEvent
|
4
|
-
# rubocop:disable LineLength
|
5
|
-
blocknize '^\s*' + CHAR_RE + 'on\(:sensor_change,\s*"(A[0-5])"\s*\)\s+do\s*$',
|
6
|
-
statement: true, indent: true
|
7
|
-
# rubocop:enable LineLength
|
8
|
-
|
9
|
-
def self.process_match_data(md, context)
|
10
|
-
md2 = regexp.match(md[type])
|
11
|
-
add_character_event_blocks(context, md2[1],
|
12
|
-
new(fields: { PIN: md2[2] }))
|
13
|
-
true
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
goog.provide("Blockly.Msg.en_us.smalruby"),goog.require("Blockly.Msg"),Blockly.Msg.VIEWS_MAIN_MENU_VIEW_COMMON_LINES=" Lines",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_COMMON_LETTERS=" Letters",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_COMMON_COMMA=", ",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_BLOCK_MODE_BLOCKUI_TITLE="Converting Program",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_BLOCK_MODE_BLOCKUI_MESSAGE="Converting your program to instruction blocks.",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_BLOCK_MODE_ERROR="Can't convert your program to instruction blocks.",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_RUN_BLOCKUI_TITLE="Running",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_RUN_BLOCKUI_MESSAGE="Please switch your program's window.",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_RUN_BLOCKUI_NOTICE="Running your program after save & check it.<br>Press ESC key to quit.",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_RUN_ERROR_CANT_RUN="Can't run your program.",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_RUN_ERROR_CANCEL_TO_RUN="Cancel to run your program.",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_DOWNLOAD_BLOCKUI_TITLE="Downloading",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_DOWNLOAD_BLOCKUI_MESSAGE="Downloading your program.",Blockly.Msg.BLOCKS_MOTION_MOVE="move %1 steps",Blockly.Msg.BLOCKS_MOTION_TURN_RIGHT_DEGREES="turn right %1 degrees",Blockly.Msg.BLOCKS_MOTION_TURN_LEFT_DEGREES="turn left %1 degrees",Blockly.Msg.BLOCKS_MOTION_POINT_IN_DIRECTION="point in direction %1",Blockly.Msg.BLOCKS_MOTION_POINT_TOWARDS_MOUSE="point towards mouse-pointer",Blockly.Msg.BLOCKS_MOTION_POINT_TOWARDS_CHARACTER="point towards",Blockly.Msg.BLOCKS_MOTION_SET_X_Y_X="go to x:",Blockly.Msg.BLOCKS_MOTION_SET_X_Y_Y="y:",Blockly.Msg.BLOCKS_MOTION_SET_X_Y_SUFFIX="",Blockly.Msg.BLOCKS_MOTION_GO_TO_MOUSE="go to mouse-pointer",Blockly.Msg.BLOCKS_MOTION_GO_TO_CHARACTER_PREFIX="go to ",Blockly.Msg.BLOCKS_MOTION_GO_TO_CHARACTER_SUFFIX="",Blockly.Msg.BLOCKS_MOTION_CHANGE_X_BY="change x by %1",Blockly.Msg.BLOCKS_MOTION_SET_X="set x to %1",Blockly.Msg.BLOCKS_MOTION_CHANGE_Y_BY="change y by %1",Blockly.Msg.BLOCKS_MOTION_SET_Y="set y to %1",Blockly.Msg.BLOCKS_MOTION_TURN_IF_REACH_WALL="if reach wall, turn",Blockly.Msg.BLOCKS_MOTION_TURN="turn",Blockly.Msg.BLOCKS_MOTION_TURN_XY_X="(x) horizontal",Blockly.Msg.BLOCKS_MOTION_TURN_XY_Y="(y) vertical",Blockly.Msg.BLOCKS_MOTION_TURN_XY_PREFIX="turn to ",Blockly.Msg.BLOCKS_MOTION_TURN_XY_SUFFIX="",Blockly.Msg.BLOCKS_MOTION_SET_ROTATION_STYLE_LEFT_RIGHT="left-right",Blockly.Msg.BLOCKS_MOTION_SET_ROTATION_STYLE_NONE="don't rorate",Blockly.Msg.BLOCKS_MOTION_SET_ROTATION_STYLE_FREE="all around",Blockly.Msg.BLOCKS_MOTION_SET_ROTATION_STYLE_PREFIX="set rotation style ",Blockly.Msg.BLOCKS_MOTION_SET_ROTATION_STYLE_SUFFIX="",Blockly.Msg.BLOCKS_MOTION_SELF_X="x position",Blockly.Msg.BLOCKS_MOTION_SELF_Y="y position",Blockly.Msg.BLOCKS_MOTION_SELF_ANGLE="direction",Blockly.Msg.BLOCKS_EVENTS_ON_START="when Run clicked",Blockly.Msg.BLOCKS_EVENTS_ON_KEY_PUSH_OR_DOWN_PREFIX="when ",Blockly.Msg.BLOCKS_EVENTS_ON_KEY_PUSH_OR_DOWN_MIDDLE=" key ",Blockly.Msg.BLOCKS_EVENTS_ON_KEY_PUSH_OR_DOWN_SUFFIX="",Blockly.Msg.BLOCKS_EVENTS_ON_CLICK="when this sprite clicked",Blockly.Msg.BLOCKS_EVENTS_ON_HIT_PREFIX="when ",Blockly.Msg.BLOCKS_EVENTS_ON_HIT_SUFFIX=" hit",Blockly.Msg.BLOCKS_SENSING_K_UP="up arrow",Blockly.Msg.BLOCKS_SENSING_K_DOWN="down arrow",Blockly.Msg.BLOCKS_SENSING_K_LEFT="left arrow",Blockly.Msg.BLOCKS_SENSING_K_RIGHT="right arrow",Blockly.Msg.BLOCKS_SENSING_K_SPACE="space",Blockly.Msg.BLOCKS_SENSING_PUSH="pressed?",Blockly.Msg.BLOCKS_SENSING_HOLD_DOWN="hold pressed?",Blockly.Msg.BLOCKS_SENSING_DOWN=Blockly.Msg.BLOCKS_SENSING_PUSH,Blockly.Msg.BLOCKS_SENSING_M_LBUTTON="left-button",Blockly.Msg.BLOCKS_SENSING_M_MBUTTON="middle-button",Blockly.Msg.BLOCKS_SENSING_M_RBUTTON="right-button",Blockly.Msg.BLOCKS_SENSING_UP="released?",Blockly.Msg.BLOCKS_SENSING_REACH_WALL="reach wall?",Blockly.Msg.BLOCKS_SENSING_INPUT_KEY_PUSH_OR_DOWN_PREFIX="key ",Blockly.Msg.BLOCKS_SENSING_INPUT_KEY_PUSH_OR_DOWN_MIDDLE=" ",Blockly.Msg.BLOCKS_SENSING_INPUT_KEY_PUSH_OR_DOWN_SUFFIX="",Blockly.Msg.BLOCKS_SENSING_INPUT_MOUSE_PUSH_OR_DOWN_PREFIX="mouse ",Blockly.Msg.BLOCKS_SENSING_INPUT_MOUSE_PUSH_OR_DOWN_MIDDLE=" ",Blockly.Msg.BLOCKS_SENSING_INPUT_MOUSE_PUSH_OR_DOWN_SUFFIX="",Blockly.Msg.BLOCKS_SENSING_INPUT_MOUSE_POS_X="mouse x",Blockly.Msg.BLOCKS_SENSING_INPUT_MOUSE_POS_Y="mouse y",Blockly.Msg.BLOCKS_SENSING_HIT_PREFIX="reach ",Blockly.Msg.BLOCKS_SENSING_HIT_SUFFIX="?",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_X="x position",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_Y="y position",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_ANGLE="direction",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_COSTUME_INDEX="costume #",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_COSTUME="contume name",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_SCALE="size",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_VOLUME="volume",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_MIDDLE=" of ",Blockly.Msg.BLOCKS_SENSING_TIME_NOW_YEAR="year",Blockly.Msg.BLOCKS_SENSING_TIME_NOW_MONTH="month",Blockly.Msg.BLOCKS_SENSING_TIME_NOW_DAY="day",Blockly.Msg.BLOCKS_SENSING_TIME_NOW_WDAY="day of week",Blockly.Msg.BLOCKS_SENSING_TIME_NOW_HOUR="hour",Blockly.Msg.BLOCKS_SENSING_TIME_NOW_MIN="min",Blockly.Msg.BLOCKS_SENSING_TIME_NOW_SEC="sec",Blockly.Msg.BLOCKS_SENSING_TIME_NOW="current ",Blockly.Msg.BLOCKS_CONTROL_SLEEP="wait %1 secs",Blockly.Msg.BLOCKS_CONTROL_LOOP="loop",Blockly.Msg.BLOCKS_CONTROL_LOOP_END="end of loop",Blockly.Msg.BLOCKS_CONTROL_BREAK="stop this loop",Blockly.Msg.BLOCKS_CONTROL_NEXT="next iteration of this loop",Blockly.Msg.BLOCKS_CONTROL_REDO="redo iteration of this loop",Blockly.Msg.BLOCKS_CONTROL_IF="if ",Blockly.Msg.BLOCKS_CONTROL_THEN=" then",Blockly.Msg.BLOCKS_CONTROL_ELSE="else",Blockly.Msg.BLOCKS_CONTROL_TIMES="repeat %1",Blockly.Msg.BLOCKS_CONTROL_AWAIT_UNTIL="wait until %1",Blockly.Msg.BLOCKS_CONTROL_UNTIL="repeat until %1",Blockly.Msg.BLOCKS_CONTROL_AWAIT="just wait a little",Blockly.Msg.BLOCKS_RUBY_STATEMENT="statement ",Blockly.Msg.BLOCKS_RUBY_EXPRESSION="expression ",Blockly.Msg.BLOCKS_RUBY_COMMENT="comment ",Blockly.Msg.BLOCKS_FIELD_CHARACTER_NO_CHARACTER="no character",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_DO="Middle C of piano",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_RE="D of piano",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_MI="E of piano",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_FA="F of piano",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_SO="G of piano",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_RA="A of piano",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_SI="B of piano",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_DO_2="High C of piano",Blockly.Msg.BLOCKS_SOUND_PLAY="play sound %1",Blockly.Msg.BLOCKS_LOOKS_SAY="say %1",Blockly.Msg.BLOCKS_LOOKS_THINK="think %1",Blockly.Msg.BLOCKS_LOOKS_SAY_WITH_SECOND="say %1 for %2 secs",Blockly.Msg.BLOCKS_LOOKS_THINK_WITH_SECOND="think %1 for %2 secs",Blockly.Msg.BLOCKS_LOOKS_SHOW="show",Blockly.Msg.BLOCKS_LOOKS_HIDE="hide",Blockly.Msg.BLOCKS_LOOKS_VANISH="vanish",Blockly.Msg.BLOCKS_HARDWARE_LED_ON="turn on LED %1",Blockly.Msg.BLOCKS_HARDWARE_LED_OFF="turn off LED %1",Blockly.Msg.BLOCKS_HARDWARE_ANODE="anode",Blockly.Msg.BLOCKS_HARDWARE_CATHODE="cathode",Blockly.Msg.BLOCKS_HARDWARE_LEFT="left",Blockly.Msg.BLOCKS_HARDWARE_RIGHT="right",Blockly.Msg.BLOCKS_HARDWARE_INIT_HARDWARE="setup hardware",Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_ON="set RGB LED %1 common %2 color to %3",Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_OFF="turn off RGB LED %1 common %2",Blockly.Msg.BLOCKS_HARDWARE_SEVEN_SEGMENT_DISPLAY_SHOW="show 7 segment display %1",Blockly.Msg.BLOCKS_HARDWARE_SEVEN_SEGMENT_DISPLAY_OFF="turn off 7 segment display",Blockly.Msg.BLOCKS_HARDWARE_LCD_PUTS="display %1 on the LCD",Blockly.Msg.BLOCKS_HARDWARE_LCD_CLEAR="clear LCD",Blockly.Msg.BLOCKS_HARDWARE_SERVO_SET_POSITION="servo motor %1 set %2 degree (5-180)",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_FORWARD="forward 2WD car %1",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_BACKWARD="backward 2WD car %1",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_TURN_LEFT="turn left 2WD car %1",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_TURN_RIGHT="turn right 2WD car %1",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_STOP="stop 2WD car %1",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_RUN="%1 2WD car %2 %3 secs",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_COMMANDS_FORWARD="forward",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_COMMANDS_BACKWARD="backward",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_COMMANDS_TURN_LEFT="turn left",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_COMMANDS_TURN_RIGHT="turn right",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_COMMANDS_STOP="stop",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_SET_SPEED="set 2WD car %1 's %2 motor speed to %3 %",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_SPEED="2WD car %1 's %2 motor speed (%)",Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_FORWARD="forward",Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_BACKWARD="backward",Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_STOP="stop",Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER="%2 (motor driver %1's) motor",Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_SET_SPEED="set (motor driver %1's) motor speed to %2 %",Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_SPEED="(motor driver %1's) motor speed (%)",Blockly.Msg.BLOCKS_HARDWARE_BUTTON_DOWN_OR_UP="button %1 %2",Blockly.Msg.BLOCKS_HARDWARE_ON_BUTTON_DOWN_OR_UP="when button %1 %2",Blockly.Msg.BLOCKS_HARDWARE_BUTTON_NOT_USE_PULLUP="don't use button %1's pull-up resistor",Blockly.Msg.BLOCKS_HARDWARE_SENSOR_VALUE="sensor %1 value",Blockly.Msg.BLOCKS_HARDWARE_ON_SENSOR_CHANGE="when sensor %1 value changed",Blockly.Msg.BLOCKS_OPERATORS_ADD="%1 + %2",Blockly.Msg.BLOCKS_OPERATORS_MINUS="%1 - %2",Blockly.Msg.BLOCKS_OPERATORS_MULTIPLY="%1 * %2",Blockly.Msg.BLOCKS_OPERATORS_DIVIDE="%1 / %2",Blockly.Msg.BLOCKS_OPERATORS_COMPARE_LT="%1 < %2",Blockly.Msg.BLOCKS_OPERATORS_COMPARE_LTE="%1 <= %2",Blockly.Msg.BLOCKS_OPERATORS_COMPARE_EQ="%1 = %2",Blockly.Msg.BLOCKS_OPERATORS_COMPARE_GTE="%1 >= %2",Blockly.Msg.BLOCKS_OPERATORS_COMPARE_GT="%1 > %2",Blockly.Msg.BLOCKS_OPERATORS_RAND="pick random %1 to %2",Blockly.Msg.BLOCKS_OPERATORS_AND="%1 and %2",Blockly.Msg.BLOCKS_OPERATORS_OR="%1 or %2",Blockly.Msg.BLOCKS_OPERATORS_NOT="not %1",Blockly.Msg.BLOCKS_OPERATORS_INDEX_OF="letter %1 of %2",Blockly.Msg.BLOCKS_OPERATORS_LENGTH="length of %1",Blockly.Msg.BLOCKS_OPERATORS_MODULO="%1 mod %2",Blockly.Msg.BLOCKS_OPERATORS_ROUND="round %1",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD="%1 of %2",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_ABS="abs",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_FLOOR="floor",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_CEIL="ceiling",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_SQRT="sqrt",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_SIN="sin",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_COS="cos",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_TAN="tan",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_ASIN="asin",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_ACOS="acos",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_ATAN="atan",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_LN="ln",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_LOG="log",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_E_SQUARE="e ^",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_10_SQUARE="10 ^",Blockly.Msg.BLOCKS_OPERATORS_TRUE="true",Blockly.Msg.BLOCKS_OPERATORS_FALSE="false",Blockly.Msg.BLOCKS_PEN_DOWN_PEN="pen down",Blockly.Msg.BLOCKS_PEN_UP_PEN="pen up",Blockly.Msg.BLOCKS_PEN_SET_PEN_COLOR="set pen color to %1";
|
Binary file
|
@@ -1 +0,0 @@
|
|
1
|
-
goog.provide("Blockly.Msg.ja.smalruby"),goog.require("Blockly.Msg"),Blockly.Msg.VIEWS_MAIN_MENU_VIEW_COMMON_LINES="行",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_COMMON_LETTERS="文字",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_COMMON_COMMA="、",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_BLOCK_MODE_BLOCKUI_TITLE="プログラムの変換中",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_BLOCK_MODE_BLOCKUI_MESSAGE="プログラムをブロックに変換しています。",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_BLOCK_MODE_ERROR="ブロックへの変換に失敗しました",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_RUN_BLOCKUI_TITLE="プログラムの実行中",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_RUN_BLOCKUI_MESSAGE="プログラムの画面に切り替えてください。",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_RUN_BLOCKUI_NOTICE="プログラムをセーブ・チェックしてから実行するよ♪<br>Escキーを押すとプログラムが終わります。",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_RUN_ERROR_CANT_RUN="プログラムを実行できませんでした",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_RUN_ERROR_CANCEL_TO_RUN="プログラムの実行をキャンセルしました",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_DOWNLOAD_BLOCKUI_TITLE="プログラムのダウンロード中",Blockly.Msg.VIEWS_MAIN_MENU_VIEW_DOWNLOAD_BLOCKUI_MESSAGE="プログラムをダウンロードしています。",Blockly.Msg.BLOCKS_MOTION_MOVE="%1歩動かす",Blockly.Msg.BLOCKS_MOTION_TURN_RIGHT_DEGREES="時計回りに%1度回す",Blockly.Msg.BLOCKS_MOTION_TURN_LEFT_DEGREES="反時計回りに%1度回す",Blockly.Msg.BLOCKS_MOTION_POINT_IN_DIRECTION="%1度に向ける",Blockly.Msg.BLOCKS_MOTION_POINT_TOWARDS_MOUSE="マウスポインターへ向ける",Blockly.Msg.BLOCKS_MOTION_POINT_TOWARDS_CHARACTER="へ向ける",Blockly.Msg.BLOCKS_MOTION_SET_X_Y_X="x座標を",Blockly.Msg.BLOCKS_MOTION_SET_X_Y_Y="、y座標を",Blockly.Msg.BLOCKS_MOTION_SET_X_Y_SUFFIX="にする",Blockly.Msg.BLOCKS_MOTION_GO_TO_MOUSE="マウスポインターへ行く",Blockly.Msg.BLOCKS_MOTION_GO_TO_CHARACTER_PREFIX="",Blockly.Msg.BLOCKS_MOTION_GO_TO_CHARACTER_SUFFIX="へ行く",Blockly.Msg.BLOCKS_MOTION_CHANGE_X_BY="x座標を%1ずつ変える",Blockly.Msg.BLOCKS_MOTION_SET_X="x座標を%1にする",Blockly.Msg.BLOCKS_MOTION_CHANGE_Y_BY="y座標を%1ずつ変える",Blockly.Msg.BLOCKS_MOTION_SET_Y="y座標を%1にする",Blockly.Msg.BLOCKS_MOTION_TURN_IF_REACH_WALL="もし端に着いたら、跳ね返る",Blockly.Msg.BLOCKS_MOTION_TURN="跳ね返る",Blockly.Msg.BLOCKS_MOTION_TURN_XY_X="水平(x)",Blockly.Msg.BLOCKS_MOTION_TURN_XY_Y="垂直(y)",Blockly.Msg.BLOCKS_MOTION_TURN_XY_PREFIX="",Blockly.Msg.BLOCKS_MOTION_TURN_XY_SUFFIX="方向に跳ね返る",Blockly.Msg.BLOCKS_MOTION_SET_ROTATION_STYLE_LEFT_RIGHT="左右のみ",Blockly.Msg.BLOCKS_MOTION_SET_ROTATION_STYLE_NONE="回転しない",Blockly.Msg.BLOCKS_MOTION_SET_ROTATION_STYLE_FREE="自由に回転",Blockly.Msg.BLOCKS_MOTION_SET_ROTATION_STYLE_PREFIX="回転方法を",Blockly.Msg.BLOCKS_MOTION_SET_ROTATION_STYLE_SUFFIX="にする",Blockly.Msg.BLOCKS_MOTION_SELF_X="x座標",Blockly.Msg.BLOCKS_MOTION_SELF_Y="y座標",Blockly.Msg.BLOCKS_MOTION_SELF_ANGLE="向き",Blockly.Msg.BLOCKS_EVENTS_ON_START="実行ボタンがクリックされたとき",Blockly.Msg.BLOCKS_EVENTS_ON_KEY_PUSH_OR_DOWN_PREFIX="キーボードの",Blockly.Msg.BLOCKS_EVENTS_ON_KEY_PUSH_OR_DOWN_MIDDLE="が",Blockly.Msg.BLOCKS_EVENTS_ON_KEY_PUSH_OR_DOWN_SUFFIX="とき",Blockly.Msg.BLOCKS_EVENTS_ON_CLICK="キャラクターがクリックされたとき",Blockly.Msg.BLOCKS_EVENTS_ON_HIT_PREFIX="",Blockly.Msg.BLOCKS_EVENTS_ON_HIT_SUFFIX="にぶつかったとき",Blockly.Msg.BLOCKS_SENSING_K_UP="↑",Blockly.Msg.BLOCKS_SENSING_K_DOWN="↓",Blockly.Msg.BLOCKS_SENSING_K_LEFT="←",Blockly.Msg.BLOCKS_SENSING_K_RIGHT="→",Blockly.Msg.BLOCKS_SENSING_K_SPACE="スペース",Blockly.Msg.BLOCKS_SENSING_PUSH="押された",Blockly.Msg.BLOCKS_SENSING_HOLD_DOWN="押され続けている",Blockly.Msg.BLOCKS_SENSING_DOWN=Blockly.Msg.BLOCKS_SENSING_PUSH,Blockly.Msg.BLOCKS_SENSING_M_LBUTTON="左ボタン",Blockly.Msg.BLOCKS_SENSING_M_MBUTTON="中ボタン",Blockly.Msg.BLOCKS_SENSING_M_RBUTTON="右ボタン",Blockly.Msg.BLOCKS_SENSING_UP="離された",Blockly.Msg.BLOCKS_SENSING_REACH_WALL="端に触れた",Blockly.Msg.BLOCKS_SENSING_INPUT_KEY_PUSH_OR_DOWN_PREFIX="キーボードの",Blockly.Msg.BLOCKS_SENSING_INPUT_KEY_PUSH_OR_DOWN_MIDDLE="が",Blockly.Msg.BLOCKS_SENSING_INPUT_KEY_PUSH_OR_DOWN_SUFFIX="",Blockly.Msg.BLOCKS_SENSING_INPUT_MOUSE_PUSH_OR_DOWN_PREFIX="マウスの",Blockly.Msg.BLOCKS_SENSING_INPUT_MOUSE_PUSH_OR_DOWN_MIDDLE="が",Blockly.Msg.BLOCKS_SENSING_INPUT_MOUSE_PUSH_OR_DOWN_SUFFIX="",Blockly.Msg.BLOCKS_SENSING_INPUT_MOUSE_POS_X="マウスのx座標",Blockly.Msg.BLOCKS_SENSING_INPUT_MOUSE_POS_Y="マウスのy座標",Blockly.Msg.BLOCKS_SENSING_HIT_PREFIX="",Blockly.Msg.BLOCKS_SENSING_HIT_SUFFIX="に触れた",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_X="x座標",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_Y="y座標",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_ANGLE="向き",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_COSTUME_INDEX="コスチューム番号",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_COSTUME="コスチューム名",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_SCALE="大きさ",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_VOLUME="ボリューム",Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_MIDDLE="の",Blockly.Msg.BLOCKS_SENSING_TIME_NOW_YEAR="年",Blockly.Msg.BLOCKS_SENSING_TIME_NOW_MONTH="月",Blockly.Msg.BLOCKS_SENSING_TIME_NOW_DAY="日",Blockly.Msg.BLOCKS_SENSING_TIME_NOW_WDAY="曜日",Blockly.Msg.BLOCKS_SENSING_TIME_NOW_HOUR="時",Blockly.Msg.BLOCKS_SENSING_TIME_NOW_MIN="分",Blockly.Msg.BLOCKS_SENSING_TIME_NOW_SEC="秒",Blockly.Msg.BLOCKS_SENSING_TIME_NOW="現在の",Blockly.Msg.BLOCKS_CONTROL_SLEEP="%1秒待つ",Blockly.Msg.BLOCKS_CONTROL_LOOP="ずっと",Blockly.Msg.BLOCKS_CONTROL_LOOP_END="を繰り返す",Blockly.Msg.BLOCKS_CONTROL_BREAK="繰り返しから脱出する",Blockly.Msg.BLOCKS_CONTROL_NEXT="次の繰り返しにジャンプする",Blockly.Msg.BLOCKS_CONTROL_REDO="現在の繰り返しをやり直す",Blockly.Msg.BLOCKS_CONTROL_IF="もし",Blockly.Msg.BLOCKS_CONTROL_THEN="ならば",Blockly.Msg.BLOCKS_CONTROL_ELSE="でなければ",Blockly.Msg.BLOCKS_CONTROL_TIMES="%1回繰り返す",Blockly.Msg.BLOCKS_CONTROL_AWAIT_UNTIL="%1まで待つ",Blockly.Msg.BLOCKS_CONTROL_UNTIL="%1まで",Blockly.Msg.BLOCKS_CONTROL_AWAIT="ほんの少し待つ",Blockly.Msg.BLOCKS_RUBY_STATEMENT="文",Blockly.Msg.BLOCKS_RUBY_EXPRESSION="式",Blockly.Msg.BLOCKS_RUBY_COMMENT="コメント",Blockly.Msg.BLOCKS_FIELD_CHARACTER_NO_CHARACTER="キャラクターなし",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_DO="ピアノのド",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_RE="ピアノのレ",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_MI="ピアノのミ",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_FA="ピアノのファ",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_SO="ピアノのソ",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_RA="ピアノのラ",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_SI="ピアノのシ",Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_DO_2="ピアノの高いド",Blockly.Msg.BLOCKS_SOUND_PLAY="%1の音を鳴らす",Blockly.Msg.BLOCKS_LOOKS_SAY="%1と言う",Blockly.Msg.BLOCKS_LOOKS_THINK="%1と考える",Blockly.Msg.BLOCKS_LOOKS_SAY_WITH_SECOND="%1と%2秒と言う",Blockly.Msg.BLOCKS_LOOKS_THINK_WITH_SECOND="%1と%2秒と考える",Blockly.Msg.BLOCKS_LOOKS_SHOW="表示する",Blockly.Msg.BLOCKS_LOOKS_HIDE="隠す",Blockly.Msg.BLOCKS_LOOKS_VANISH="消滅する",Blockly.Msg.BLOCKS_HARDWARE_LED_ON="LED%1をオンにする",Blockly.Msg.BLOCKS_HARDWARE_LED_OFF="LED%1をオフにする",Blockly.Msg.BLOCKS_HARDWARE_ANODE="アノード",Blockly.Msg.BLOCKS_HARDWARE_CATHODE="カソード",Blockly.Msg.BLOCKS_HARDWARE_LEFT=" 左",Blockly.Msg.BLOCKS_HARDWARE_RIGHT="右",Blockly.Msg.BLOCKS_HARDWARE_INIT_HARDWARE="ハードウェアを準備する",Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_ON="set RGB LED %1 common %2 color to %3",Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_ON="RGB LED%1コモン%2を%3にする",Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_OFF="RGB LED%1コモン%2をオフにする",Blockly.Msg.BLOCKS_HARDWARE_SEVEN_SEGMENT_DISPLAY_SHOW="7セグディスプレイに%1を表示する",Blockly.Msg.BLOCKS_HARDWARE_SEVEN_SEGMENT_DISPLAY_OFF="7セグディスプレイをオフにする",Blockly.Msg.BLOCKS_HARDWARE_LCD_PUTS="LCDに%1を表示する",Blockly.Msg.BLOCKS_HARDWARE_LCD_CLEAR="LCDをクリアする",Blockly.Msg.BLOCKS_HARDWARE_SERVO_SET_POSITION="サーボ%1を%2度(5~180)にする",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_FORWARD="2WD車%1を進める",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_BACKWARD="2WD車%1をバックさせる",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_TURN_LEFT="2WD車%1を左に曲げる",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_TURN_RIGHT="2WD車%1を右に曲げる",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_STOP="2WD車%1を止める",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_RUN="2WD車%2を%3秒%1",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_COMMANDS_FORWARD="進める",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_COMMANDS_BACKWARD="バックさせる",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_COMMANDS_TURN_LEFT="左に曲げる",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_COMMANDS_TURN_RIGHT="右に曲げる",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_COMMANDS_STOP="止める",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_SET_SPEED="2WD車%1の%2の速度(%)を%3にする",Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_SPEED="2WD車%1の%2の速度(%)",Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_FORWARD="正転させる",Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_BACKWARD="逆転させる",Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_STOP="止める",Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER="(モータードライバ%1で)モーターを%2",Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_SET_SPEED="(モータードライバ%1の)モーターの速度を%2にする",Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_SPEED="(モータードライバ%1の)モーターの速度(%)",Blockly.Msg.BLOCKS_HARDWARE_BUTTON_DOWN_OR_UP="ボタン%1が%2",Blockly.Msg.BLOCKS_HARDWARE_ON_BUTTON_DOWN_OR_UP="ボタン%1が%2とき",Blockly.Msg.BLOCKS_HARDWARE_BUTTON_NOT_USE_PULLUP="ボタン%1のプルアップ抵抗を使わない",Blockly.Msg.BLOCKS_HARDWARE_SENSOR_VALUE="センサー%1",Blockly.Msg.BLOCKS_HARDWARE_ON_SENSOR_CHANGE="センサー%1が変化したとき",Blockly.Msg.BLOCKS_OPERATORS_ADD="%1+%2",Blockly.Msg.BLOCKS_OPERATORS_MINUS="%1ー%2",Blockly.Msg.BLOCKS_OPERATORS_MULTIPLY="%1×%2",Blockly.Msg.BLOCKS_OPERATORS_DIVIDE="%1÷%2",Blockly.Msg.BLOCKS_OPERATORS_COMPARE_LT="%1<%2",Blockly.Msg.BLOCKS_OPERATORS_COMPARE_LTE="%1≦%2",Blockly.Msg.BLOCKS_OPERATORS_COMPARE_EQ="%1=%2",Blockly.Msg.BLOCKS_OPERATORS_COMPARE_GTE="%1≧%2",Blockly.Msg.BLOCKS_OPERATORS_COMPARE_GT="%1>%2",Blockly.Msg.BLOCKS_OPERATORS_RAND="%1から%2までの乱数",Blockly.Msg.BLOCKS_OPERATORS_AND="%1かつ%2",Blockly.Msg.BLOCKS_OPERATORS_OR="%1または%2",Blockly.Msg.BLOCKS_OPERATORS_NOT="%1ではない",Blockly.Msg.BLOCKS_OPERATORS_INDEX_OF="%1の%2番目",Blockly.Msg.BLOCKS_OPERATORS_LENGTH="%1の長さ",Blockly.Msg.BLOCKS_OPERATORS_MODULO="%1を%2で割った余り",Blockly.Msg.BLOCKS_OPERATORS_ROUND="%1を丸める",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD="%1の%2",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_ABS="絶対値",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_FLOOR="切り上げ",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_CEIL="切り下げ",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_SQRT="平方根",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_SIN="sin",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_COS="cos",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_TAN="tan",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_ASIN="asin",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_ACOS="acos",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_ATAN="atan",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_LN="log",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_LOG="log10",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_E_SQUARE="e ^",Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_10_SQUARE="10 ^",Blockly.Msg.BLOCKS_OPERATORS_TRUE="真",Blockly.Msg.BLOCKS_OPERATORS_FALSE="偽",Blockly.Msg.BLOCKS_PEN_DOWN_PEN="ペンを下ろす",Blockly.Msg.BLOCKS_PEN_UP_PEN="ペンを上げる",Blockly.Msg.BLOCKS_PEN_SET_PEN_COLOR="ペンの色を%1にする";
|
Binary file
|
@@ -1,75 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# language: ja
|
3
|
-
@javascript
|
4
|
-
機能: hardware_led_off - 「LED[▼ピン]をオフにする」ブロック
|
5
|
-
シナリオ: ブロックのみ配置する
|
6
|
-
前提 "ブロック" タブを表示する
|
7
|
-
|
8
|
-
もし 次のブロックを配置する:
|
9
|
-
"""
|
10
|
-
%block{:type => "hardware_led_off", :x => "0", :y => "0"}
|
11
|
-
%field{:name => "PIN"}<
|
12
|
-
D13
|
13
|
-
"""
|
14
|
-
かつ ブロックからソースコードを生成する
|
15
|
-
|
16
|
-
ならば テキストエディタのプログラムは "" であること
|
17
|
-
|
18
|
-
シナリオ: キャラクターとブロックを配置する
|
19
|
-
前提 "ブロック" タブを表示する
|
20
|
-
かつ 次のキャラクターを追加する:
|
21
|
-
| name | costumes | x | y | angle |
|
22
|
-
| car1 | car1.png | 0 | 0 | 0 |
|
23
|
-
|
24
|
-
もし 次のブロックを配置する:
|
25
|
-
"""
|
26
|
-
%block{:type => "character_new", :x => "21", :y => "15"}
|
27
|
-
%field{:name => "NAME"}<
|
28
|
-
car1
|
29
|
-
%statement{:name => "DO"}
|
30
|
-
%block{:type => "hardware_led_off", :x => "0", :y => "0"}
|
31
|
-
%field{:name => "PIN"}<
|
32
|
-
D13
|
33
|
-
"""
|
34
|
-
かつ ブロックからソースコードを生成する
|
35
|
-
|
36
|
-
ならば テキストエディタのプログラムは以下であること:
|
37
|
-
"""
|
38
|
-
require "smalruby"
|
39
|
-
|
40
|
-
car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
|
41
|
-
car1.led("D13").off
|
42
|
-
|
43
|
-
"""
|
44
|
-
|
45
|
-
シナリオ: キャラクターとイベントとブロックを配置する
|
46
|
-
前提 "ブロック" タブを表示する
|
47
|
-
かつ 次のキャラクターを追加する:
|
48
|
-
| name | costumes | x | y | angle |
|
49
|
-
| car1 | car1.png | 0 | 0 | 0 |
|
50
|
-
|
51
|
-
もし 次のブロックを配置する:
|
52
|
-
"""
|
53
|
-
%block{:type => "character_new", :x => "21", :y => "15"}
|
54
|
-
%field{:name => "NAME"}<
|
55
|
-
car1
|
56
|
-
%statement{:name => "DO"}
|
57
|
-
%block{:type => "events_on_start"}
|
58
|
-
%statement{:name => "DO"}
|
59
|
-
%block{:type => "hardware_led_off", :x => "0", :y => "0"}
|
60
|
-
%field{:name => "PIN"}<
|
61
|
-
D13
|
62
|
-
"""
|
63
|
-
かつ ブロックからソースコードを生成する
|
64
|
-
|
65
|
-
ならば テキストエディタのプログラムは以下であること:
|
66
|
-
"""
|
67
|
-
require "smalruby"
|
68
|
-
|
69
|
-
car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
|
70
|
-
|
71
|
-
car1.on(:start) do
|
72
|
-
led("D13").off
|
73
|
-
end
|
74
|
-
|
75
|
-
"""
|
@@ -1,75 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# language: ja
|
3
|
-
@javascript
|
4
|
-
機能: hardware_led_on - 「LED[▼ピン]をオンにする」ブロック
|
5
|
-
シナリオ: ブロックのみ配置する
|
6
|
-
前提 "ブロック" タブを表示する
|
7
|
-
|
8
|
-
もし 次のブロックを配置する:
|
9
|
-
"""
|
10
|
-
%block{:type => "hardware_led_on", :x => "0", :y => "0"}
|
11
|
-
%field{:name => "PIN"}<
|
12
|
-
D13
|
13
|
-
"""
|
14
|
-
かつ ブロックからソースコードを生成する
|
15
|
-
|
16
|
-
ならば テキストエディタのプログラムは "" であること
|
17
|
-
|
18
|
-
シナリオ: キャラクターとブロックを配置する
|
19
|
-
前提 "ブロック" タブを表示する
|
20
|
-
かつ 次のキャラクターを追加する:
|
21
|
-
| name | costumes | x | y | angle |
|
22
|
-
| car1 | car1.png | 0 | 0 | 0 |
|
23
|
-
|
24
|
-
もし 次のブロックを配置する:
|
25
|
-
"""
|
26
|
-
%block{:type => "character_new", :x => "21", :y => "15"}
|
27
|
-
%field{:name => "NAME"}<
|
28
|
-
car1
|
29
|
-
%statement{:name => "DO"}
|
30
|
-
%block{:type => "hardware_led_on", :x => "0", :y => "0"}
|
31
|
-
%field{:name => "PIN"}<
|
32
|
-
D13
|
33
|
-
"""
|
34
|
-
かつ ブロックからソースコードを生成する
|
35
|
-
|
36
|
-
ならば テキストエディタのプログラムは以下であること:
|
37
|
-
"""
|
38
|
-
require "smalruby"
|
39
|
-
|
40
|
-
car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
|
41
|
-
car1.led("D13").on
|
42
|
-
|
43
|
-
"""
|
44
|
-
|
45
|
-
シナリオ: キャラクターとイベントとブロックを配置する
|
46
|
-
前提 "ブロック" タブを表示する
|
47
|
-
かつ 次のキャラクターを追加する:
|
48
|
-
| name | costumes | x | y | angle |
|
49
|
-
| car1 | car1.png | 0 | 0 | 0 |
|
50
|
-
|
51
|
-
もし 次のブロックを配置する:
|
52
|
-
"""
|
53
|
-
%block{:type => "character_new", :x => "21", :y => "15"}
|
54
|
-
%field{:name => "NAME"}<
|
55
|
-
car1
|
56
|
-
%statement{:name => "DO"}
|
57
|
-
%block{:type => "events_on_start"}
|
58
|
-
%statement{:name => "DO"}
|
59
|
-
%block{:type => "hardware_led_on", :x => "0", :y => "0"}
|
60
|
-
%field{:name => "PIN"}<
|
61
|
-
D13
|
62
|
-
"""
|
63
|
-
かつ ブロックからソースコードを生成する
|
64
|
-
|
65
|
-
ならば テキストエディタのプログラムは以下であること:
|
66
|
-
"""
|
67
|
-
require "smalruby"
|
68
|
-
|
69
|
-
car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
|
70
|
-
|
71
|
-
car1.on(:start) do
|
72
|
-
led("D13").on
|
73
|
-
end
|
74
|
-
|
75
|
-
"""
|
@@ -1,87 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# language: ja
|
3
|
-
@javascript
|
4
|
-
機能: hardware_on_button_down_or_up - 「ボタン[▼PIN]が[▼押された]とき」ブロック
|
5
|
-
シナリオ: ブロックのみ配置する
|
6
|
-
前提 "ブロック" タブを表示する
|
7
|
-
|
8
|
-
もし 次のブロックを配置する:
|
9
|
-
"""
|
10
|
-
%block{:type => "hardware_on_button_down_or_up", :x => "0", :y => "0"}
|
11
|
-
%field{:name => "PIN"}<
|
12
|
-
D2
|
13
|
-
%field{:name => "DOU"}<
|
14
|
-
down
|
15
|
-
"""
|
16
|
-
かつ ブロックからソースコードを生成する
|
17
|
-
|
18
|
-
ならば テキストエディタのプログラムは "" であること
|
19
|
-
|
20
|
-
シナリオ: キャラクターとブロックを配置する
|
21
|
-
前提 "ブロック" タブを表示する
|
22
|
-
かつ 次のキャラクターを追加する:
|
23
|
-
| name | costumes | x | y | angle |
|
24
|
-
| car1 | car1.png | 0 | 0 | 0 |
|
25
|
-
|
26
|
-
もし 次のブロックを配置する:
|
27
|
-
"""
|
28
|
-
%block{:type => "character_new", :x => "21", :y => "15"}
|
29
|
-
%field{:name => "NAME"}<
|
30
|
-
car1
|
31
|
-
%statement{:name => "DO"}
|
32
|
-
%block{:type => "hardware_on_button_down_or_up", :x => "0", :y => "0"}
|
33
|
-
%field{:name => "PIN"}<
|
34
|
-
D2
|
35
|
-
%field{:name => "DOU"}<
|
36
|
-
down
|
37
|
-
"""
|
38
|
-
かつ ブロックからソースコードを生成する
|
39
|
-
|
40
|
-
ならば テキストエディタのプログラムは以下であること:
|
41
|
-
"""
|
42
|
-
require "smalruby"
|
43
|
-
|
44
|
-
car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
|
45
|
-
|
46
|
-
car1.on(:button_down, "D2") do
|
47
|
-
|
48
|
-
end
|
49
|
-
|
50
|
-
"""
|
51
|
-
|
52
|
-
シナリオ: キャラクターとイベントとブロックを配置する
|
53
|
-
前提 "ブロック" タブを表示する
|
54
|
-
かつ 次のキャラクターを追加する:
|
55
|
-
| name | costumes | x | y | angle |
|
56
|
-
| car1 | car1.png | 0 | 0 | 0 |
|
57
|
-
|
58
|
-
もし 次のブロックを配置する:
|
59
|
-
"""
|
60
|
-
%block{:type => "character_new", :x => "21", :y => "15"}
|
61
|
-
%field{:name => "NAME"}<
|
62
|
-
car1
|
63
|
-
%statement{:name => "DO"}
|
64
|
-
%block{:type => "events_on_start"}
|
65
|
-
%statement{:name => "DO"}
|
66
|
-
%block{:type => "hardware_on_button_down_or_up", :x => "0", :y => "0"}
|
67
|
-
%field{:name => "PIN"}<
|
68
|
-
D2
|
69
|
-
%field{:name => "DOU"}<
|
70
|
-
up
|
71
|
-
"""
|
72
|
-
かつ ブロックからソースコードを生成する
|
73
|
-
|
74
|
-
ならば テキストエディタのプログラムは以下であること:
|
75
|
-
"""
|
76
|
-
require "smalruby"
|
77
|
-
|
78
|
-
car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
|
79
|
-
|
80
|
-
car1.on(:start) do
|
81
|
-
|
82
|
-
on(:button_up, "D2") do
|
83
|
-
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
"""
|