dxruby64 1.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE.txt +14 -0
- data/README-ja.md +125 -0
- data/README.md +120 -0
- data/lib/31/dxruby.so +0 -0
- data/lib/32/dxruby.so +0 -0
- data/lib/33/dxruby.so +0 -0
- data/lib/34/dxruby.so +0 -0
- data/lib/dxruby.rb +2 -0
- data/sample/classic_sample/8_puzzle.rb +55 -0
- data/sample/classic_sample/block_destroy.rb +161 -0
- data/sample/classic_sample/block_fall.rb +194 -0
- data/sample/classic_sample/data.png +0 -0
- data/sample/classic_sample/dot.rb +80 -0
- data/sample/classic_sample/drawtile.rb +173 -0
- data/sample/classic_sample/flight.rb +75 -0
- data/sample/classic_sample/hitrangeview.rb +66 -0
- data/sample/classic_sample/mapedit.rb +270 -0
- data/sample/classic_sample/meiro.rb +106 -0
- data/sample/classic_sample/minsample.rb +14 -0
- data/sample/classic_sample/race.rb +119 -0
- data/sample/classic_sample/readme_sample.txt +42 -0
- data/sample/classic_sample/sample.rb +110 -0
- data/sample/classic_sample/soundeffect.rb +46 -0
- data/sample/new_sample/biyo.rb +25 -0
- data/sample/new_sample/image/enemy1.png +0 -0
- data/sample/new_sample/image/enemy1bomb.png +0 -0
- data/sample/new_sample/image/enemy2.png +0 -0
- data/sample/new_sample/image/enemy2bomb.png +0 -0
- data/sample/new_sample/image/enemyshot1.png +0 -0
- data/sample/new_sample/image/enemyshot2.png +0 -0
- data/sample/new_sample/image/maptile.png +0 -0
- data/sample/new_sample/image/myship.png +0 -0
- data/sample/new_sample/image/myshot.png +0 -0
- data/sample/new_sample/iraira.rb +49 -0
- data/sample/new_sample/laser2.rb +292 -0
- data/sample/new_sample/raycast.rb +249 -0
- data/sample/new_sample/readme_sample.txt +27 -0
- data/sample/new_sample/rubima.rb +597 -0
- data/sample/new_sample/ruby.png +0 -0
- data/sample/new_sample/slg.rb +82 -0
- data/sample/new_sample/sprite_animation.rb +133 -0
- data/sample/new_sample/sprite_collision1.rb +216 -0
- data/sample/new_sample/sprite_collision2.rb +93 -0
- data/sample/new_sample/sprite_simple.rb +65 -0
- data/sample/new_sample2/ImageFont.dat +0 -0
- data/sample/new_sample2/ImageFont.dat.png +0 -0
- data/sample/new_sample2/autocall.rb +24 -0
- data/sample/new_sample2/effecttest.rb +136 -0
- data/sample/new_sample2/fibersprite.rb +89 -0
- data/sample/new_sample2/hitrange.rb +133 -0
- data/sample/new_sample2/hlstest.rb +27 -0
- data/sample/new_sample2/mapedit_perlin.rb +291 -0
- data/sample/new_sample2/noise.rb +33 -0
- data/sample/new_sample2/particle.rb +220 -0
- data/sample/new_sample2/readme_sample.txt +29 -0
- data/sample/new_sample2/scenetest.rb +200 -0
- data/sample/new_sample2/scenetest2.rb +120 -0
- data/sample/scroll_sample/map.dat +32 -0
- data/sample/scroll_sample/map.rb +77 -0
- data/sample/scroll_sample/map_sub.dat +32 -0
- data/sample/scroll_sample/mapedit.rb +102 -0
- data/sample/scroll_sample/readme_sample.txt +24 -0
- data/sample/scroll_sample/scroll1.rb +108 -0
- data/sample/scroll_sample/scroll2.rb +149 -0
- data/sample/scroll_sample/scroll3.rb +148 -0
- data/sample/scroll_sample/simple.rb +13 -0
- data/sample/shader_sample/Shader/Flash.rb +93 -0
- data/sample/shader_sample/Shader/RasterScroll.rb +71 -0
- data/sample/shader_sample/Shader/RgssSprite.rb +143 -0
- data/sample/shader_sample/Shader/Transition.rb +108 -0
- data/sample/shader_sample/bgimage/BG00a1_80.jpg +0 -0
- data/sample/shader_sample/bgimage/BG10a_80.jpg +0 -0
- data/sample/shader_sample/bgimage/BG13a_80.jpg +0 -0
- data/sample/shader_sample/bgimage/BG32a.jpg +0 -0
- data/sample/shader_sample/bgimage/BG42a.jpg +0 -0
- data/sample/shader_sample/bgimage/course.png +0 -0
- data/sample/shader_sample/bgimage/image1.png +0 -0
- data/sample/shader_sample/bgimage/world_map2.png +0 -0
- data/sample/shader_sample/fan.rb +53 -0
- data/sample/shader_sample/image/enemy1.png +0 -0
- data/sample/shader_sample/image/enemy2.png +0 -0
- data/sample/shader_sample/image/maptile.png +0 -0
- data/sample/shader_sample/readme_sample.txt +43 -0
- data/sample/shader_sample/rule//343/203/201/343/202/247/343/203/203/343/202/253/343/203/274.png +0 -0
- data/sample/shader_sample/rule//345/217/263/346/270/246/345/267/273/343/201/215.png +0 -0
- data/sample/shader_sample/rule//346/250/252/343/203/226/343/203/251/343/202/244/343/203/263/343/203/211.png +0 -0
- data/sample/shader_sample/sample_blur.rb +112 -0
- data/sample/shader_sample/sample_divide.rb +91 -0
- data/sample/shader_sample/sample_flash.rb +54 -0
- data/sample/shader_sample/sample_lens.rb +65 -0
- data/sample/shader_sample/sample_mapping.rb +50 -0
- data/sample/shader_sample/sample_rasterscroll.rb +48 -0
- data/sample/shader_sample/sample_rgsssprite.rb +41 -0
- data/sample/shader_sample/sample_spehari.rb +50 -0
- data/sample/shader_sample/sample_sphere.rb +66 -0
- data/sample/shader_sample/sample_transition.rb +62 -0
- data/sample/shader_sample/sample_vertexshader.rb +223 -0
- data/sample/shader_sample/sample_wingman.rb +47 -0
- data/sample/shader_sample/turn_transition.rb +74 -0
- metadata +141 -0
@@ -0,0 +1,80 @@
|
|
1
|
+
#!ruby -Ks
|
2
|
+
# DXRuby �T���v�� ��
|
3
|
+
# �}�E�X���N���b�N�ŕ`���āA�E�N���b�N�ŏ����܂��B
|
4
|
+
require 'dxruby'
|
5
|
+
|
6
|
+
# �E�B���h�E�ݒ�
|
7
|
+
Window.scale = 2
|
8
|
+
Window.width = 160
|
9
|
+
Window.height = 120
|
10
|
+
|
11
|
+
# ��ʂ̉摜�f�[�^
|
12
|
+
$screen = Image.new(160, 120)
|
13
|
+
|
14
|
+
BLACK = [0, 0, 0]
|
15
|
+
WHITE = [255, 255, 255]
|
16
|
+
|
17
|
+
class Dot
|
18
|
+
def initialize(x, y)
|
19
|
+
@x = x
|
20
|
+
@y = y
|
21
|
+
end
|
22
|
+
|
23
|
+
# �������̂��߂ɓ_���ړ�����Ƃ��̂ݕ`�悷��悤�ɂ����炿����Ƃ����Ⴒ����
|
24
|
+
def move
|
25
|
+
if $screen.compare(@x, @y + 1, BLACK) then # �^��
|
26
|
+
$screen[@x, @y] = BLACK
|
27
|
+
@y = @y + 1
|
28
|
+
return true if @y > 119
|
29
|
+
$screen[@x, @y] = WHITE
|
30
|
+
elsif rand(2) == 0 then
|
31
|
+
if $screen.compare(@x-1, @y + 1, BLACK) then # ����
|
32
|
+
$screen[@x, @y] = BLACK
|
33
|
+
@y = @y + 1
|
34
|
+
@x = @x - 1
|
35
|
+
return true if @y > 119
|
36
|
+
$screen[@x, @y] = WHITE
|
37
|
+
end
|
38
|
+
else
|
39
|
+
if $screen.compare(@x+1, @y + 1, BLACK) then # �E��
|
40
|
+
$screen[@x, @y] = BLACK
|
41
|
+
@y = @y + 1
|
42
|
+
@x = @x + 1
|
43
|
+
return true if @y > 119
|
44
|
+
$screen[@x, @y] = WHITE
|
45
|
+
end
|
46
|
+
end
|
47
|
+
return false
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
dot = []
|
52
|
+
|
53
|
+
Window.loop do
|
54
|
+
# �h�b�g����
|
55
|
+
dot.push(Dot.new(rand(10)+75, 0))
|
56
|
+
|
57
|
+
# �}�E�X�̍��W�擾
|
58
|
+
mx = Input.mousePosX / 2
|
59
|
+
my = Input.mousePosY / 2
|
60
|
+
|
61
|
+
# ���N���b�N�ŕ`��
|
62
|
+
if Input.mouseDown?(M_LBUTTON) then
|
63
|
+
$screen.boxFill(mx - 1, my - 1, mx + 1, my + 1, [0, 255, 0])
|
64
|
+
end
|
65
|
+
|
66
|
+
# �E�N���b�N�ŏ���
|
67
|
+
if Input.mouseDown?(M_RBUTTON) then
|
68
|
+
$screen.boxFill(mx - 1, my - 1, mx + 1, my + 1, [0, 0, 0])
|
69
|
+
end
|
70
|
+
|
71
|
+
# �h�b�g�ړ�
|
72
|
+
dot.delete_if do |d|
|
73
|
+
d.move
|
74
|
+
end
|
75
|
+
|
76
|
+
# ��ʕ`��
|
77
|
+
Window.draw(0, 0, $screen)
|
78
|
+
|
79
|
+
break if Input.keyPush?(K_ESCAPE)
|
80
|
+
end
|
@@ -0,0 +1,173 @@
|
|
1
|
+
# �}�b�v�f�[�^����w�i�`��T���v��
|
2
|
+
# RenderTarget�N���X�̎g�����̃T���v���ɂȂ��Ă��܂��B
|
3
|
+
require 'dxruby'
|
4
|
+
|
5
|
+
# �}�b�v�f�[�^
|
6
|
+
map1 = [
|
7
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
8
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1],
|
9
|
+
[1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 2, 1, 1, 1, 1, 1],
|
10
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 1],
|
11
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1],
|
12
|
+
[1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1],
|
13
|
+
[1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1],
|
14
|
+
[1, 1, 1, 1, 1, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 3, 1, 1],
|
15
|
+
[1, 1, 1, 2, 0, 0, 0, 3, 3, 3, 3, 2, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1],
|
16
|
+
[1, 1, 1, 2, 0, 0, 0, 0, 3, 3, 3, 2, 2, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1],
|
17
|
+
[1, 1, 2, 2, 0, 0, 0, 0, 0, 1, 1, 2, 2, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1],
|
18
|
+
[1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 1, 1, 1],
|
19
|
+
[1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 3, 3, 1, 1, 1],
|
20
|
+
[1, 1, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1],
|
21
|
+
[1, 1, 1, 1, 1, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1],
|
22
|
+
[1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1],
|
23
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 3, 3, 3, 3, 3, 1, 1, 1, 1],
|
24
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1],
|
25
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 1, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1],
|
26
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 3, 0, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1],
|
27
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1],
|
28
|
+
[1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 0, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1],
|
29
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, 3, 3, 0, 3, 3, 3, 3, 1, 1, 1, 1, 1, 2, 1],
|
30
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 3, 3, 3, 1, 1, 1, 1, 1, 2, 2, 2],
|
31
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2],
|
32
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2],
|
33
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1],
|
34
|
+
[1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1],
|
35
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
36
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
37
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
38
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
|
39
|
+
]
|
40
|
+
|
41
|
+
# ��O�ɕ`�悷��p�̏�w�}�b�v�f�[�^�i4�͖̂����܁Bnil�ɂ���ƕ`�悵�Ȃ��j
|
42
|
+
map2 = [
|
43
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, nil, nil, nil],
|
44
|
+
[nil, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, nil],
|
45
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, nil],
|
46
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
47
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
48
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
49
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
50
|
+
[nil, nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
51
|
+
[nil, nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, 4, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
52
|
+
[nil, nil, 4, 4, nil, nil, nil, nil, nil, nil, nil, 4, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
53
|
+
[nil, nil, 4, 4, nil, nil, nil, nil, nil, nil, nil, 4, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
54
|
+
[nil, nil, 4, 4, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
55
|
+
[nil, nil, nil, nil, 4, 4, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
56
|
+
[nil, nil, nil, nil, nil, 4, 4, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
57
|
+
[nil, nil, 4, nil, nil, nil, nil, 4, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
58
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, 4, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
59
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
60
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, 4, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
61
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, 4, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
62
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
63
|
+
[nil, nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
64
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, nil],
|
65
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, nil, 4, 4, 4],
|
66
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, 4, 4, 4, 4],
|
67
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, 4, 4, 4, 4, 4],
|
68
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, 4, 4, 4, 4, nil],
|
69
|
+
[nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, 4, 4, nil, nil],
|
70
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
71
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
72
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
73
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
|
74
|
+
[nil, nil, nil, nil, nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]
|
75
|
+
]
|
76
|
+
|
77
|
+
|
78
|
+
# �G�̃f�[�^�����
|
79
|
+
mapimage = []
|
80
|
+
mapimage.push(Image.new(32, 32, [100, 100, 200])) # �C
|
81
|
+
mapimage.push(Image.new(32, 32, [50, 200, 50])) # ���n
|
82
|
+
mapimage.push(Image.new(32, 32, [50, 200, 50])) # �̍���
|
83
|
+
mapimage[2].boxFill(13, 0, 18, 28, [200, 50, 50])
|
84
|
+
mapimage.push(Image.new(32, 32, [50, 200, 50])) # �R
|
85
|
+
for i in 1..30 do
|
86
|
+
mapimage[3].line(15 - i/2, i, 16 + i/2, i, [200, 100, 100])
|
87
|
+
end
|
88
|
+
mapimage.push(Image.new(32, 32)) # �̂����܁B�w�i�͓����F�ɂ��Ă����B
|
89
|
+
mapimage[4].boxFill(13, 16, 18, 31, [200, 50, 50])
|
90
|
+
mapimage[4].circleFill(16, 10, 8, [0, 255, 0])
|
91
|
+
|
92
|
+
image = Image.new(32, 48). # ��l��
|
93
|
+
circle(15, 5, 5, [255, 255, 255]).
|
94
|
+
line(5, 18, 26, 18, [255, 255, 255]).
|
95
|
+
line(15, 10, 15, 31, [255, 255, 255]).
|
96
|
+
line(15, 31, 5, 47, [255, 255, 255]).
|
97
|
+
line(15, 31, 25, 47, [255, 255, 255])
|
98
|
+
|
99
|
+
# ���W�����ʒu
|
100
|
+
x = 0
|
101
|
+
y = 0
|
102
|
+
dx = 0
|
103
|
+
dy = 0
|
104
|
+
font = Font.new(32)
|
105
|
+
|
106
|
+
# 0:���͑҂����A1:�ړ���
|
107
|
+
state = 0
|
108
|
+
|
109
|
+
# �ړ��J�E���g
|
110
|
+
count = 0
|
111
|
+
|
112
|
+
# RenderTarget�쐬
|
113
|
+
rt_main = RenderTarget.new(640-64, 480-64)
|
114
|
+
rt_sub = RenderTarget.new(640-64, 480-64)
|
115
|
+
|
116
|
+
Window.loop do
|
117
|
+
|
118
|
+
# �ړ����̓J�E���g�A�b�v���邾��
|
119
|
+
if state == 1 then
|
120
|
+
count = count + 4 # �J�E���g�A�b�v
|
121
|
+
if count >= 32 then # �J�E���g�����Ȃ���͑҂��ɑJ��
|
122
|
+
state = 0
|
123
|
+
count = 0
|
124
|
+
x = x + dx # x���W�ړ�
|
125
|
+
y = y + dy # y���W�ړ�
|
126
|
+
# ���W���[�v����
|
127
|
+
x = 0 if x > 31
|
128
|
+
x = 31 if x < 0
|
129
|
+
y = 0 if y > 31
|
130
|
+
y = 31 if y < 0
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
# ���͑҂���
|
135
|
+
if state == 0 then
|
136
|
+
ix = Input.x
|
137
|
+
iy = Input.y
|
138
|
+
# �����ꂽ�`�F�b�N
|
139
|
+
if ix + iy != 0 and (ix == 0 or iy == 0) then # �i�i���͋p��
|
140
|
+
tempx = x + ix
|
141
|
+
tempy = y + iy
|
142
|
+
tempx = tempx - 32 if tempx > 31
|
143
|
+
tempy = tempy - 32 if tempy > 31
|
144
|
+
if map1[tempy][tempx] == 1 then
|
145
|
+
state = 1 # �X�N���[�����ɑJ��
|
146
|
+
dx = ix
|
147
|
+
dy = iy
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
# �x�[�X�}�b�v��rt_main�ɕ`��
|
153
|
+
rt_main.drawTile(0, 0, map1, mapimage, (x - 8.5) * 32 + count * dx, (y - 6) * 32 + count * dy, 18, 13)
|
154
|
+
rt_main.update
|
155
|
+
|
156
|
+
# ��w�}�b�v��rt_sub�ɕ`��
|
157
|
+
rt_sub.drawTile(0, 0, map2, mapimage, (x - 8.5) * 32 + count * dx, (y - 6) * 32 + count * dy, 18, 13)
|
158
|
+
rt_sub.update
|
159
|
+
|
160
|
+
# �x�[�X�}�b�v����ʂɕ`��
|
161
|
+
Window.draw(32, 32, rt_main)
|
162
|
+
|
163
|
+
# �l�`��
|
164
|
+
Window.draw(9.5 * 32, 7 * 32 - 16, image)
|
165
|
+
|
166
|
+
# ��w�}�b�v����ʂɕ`��
|
167
|
+
Window.draw(32, 32, rt_sub)
|
168
|
+
|
169
|
+
# �G�X�P�[�v�L�[�ŏI��
|
170
|
+
break if Input.keyPush?(K_ESCAPE)
|
171
|
+
Window.drawFont(32,32,Window.fps.to_s + " fps", font)
|
172
|
+
Window.drawFont(32,64,Window.getLoad.to_i.to_s + " %", font)
|
173
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
#ruby -Ks
|
2
|
+
# DXRuby �T���v�� ���ł�悤�Ȃ���
|
3
|
+
require 'dxruby'
|
4
|
+
|
5
|
+
image = Image.new(32,32)
|
6
|
+
image.boxFill(13, 16, 18, 26, [255, 200, 50, 50]) # ��
|
7
|
+
image.line(13, 16, 13, 26, [255, 0, 0, 0])
|
8
|
+
image.line(18, 16, 18, 26, [255, 0, 0, 0])
|
9
|
+
image.circleFill(16, 8, 8, [255, 0, 255, 0])
|
10
|
+
image.circle(16, 8, 8, [255, 0, 0, 0])
|
11
|
+
|
12
|
+
class Bg
|
13
|
+
@@ground = Image.new(1000,600, [255, 0, 0, 255])
|
14
|
+
attr_accessor :y, :angle
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
@y = 290
|
18
|
+
@angle = 0
|
19
|
+
end
|
20
|
+
|
21
|
+
def update
|
22
|
+
@angle -= Input.x*1.8
|
23
|
+
if @angle < -75 then
|
24
|
+
@angle = -75
|
25
|
+
end
|
26
|
+
if @angle > 75 then
|
27
|
+
@angle = 75
|
28
|
+
end
|
29
|
+
@y -= Input.y*5
|
30
|
+
@y = 400 if @y > 400
|
31
|
+
@y = 100 if @y < 100
|
32
|
+
Window.drawRot(-180, @y, @@ground, angle, 500, 240-@y, 0)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
bg = Bg.new
|
37
|
+
Window.bgcolor = [200,250,255]
|
38
|
+
x = 320
|
39
|
+
y = 240
|
40
|
+
z = []
|
41
|
+
Obj = Struct.new(:x, :y, :z)
|
42
|
+
font = Font.new(32)
|
43
|
+
angle = 0
|
44
|
+
objx = 0
|
45
|
+
|
46
|
+
Window.loop do
|
47
|
+
|
48
|
+
z.push(Obj.new(rand(2000) - 680, 500, 5.0))
|
49
|
+
z.push(Obj.new(rand(2000) - 680, 500, 5.0))
|
50
|
+
|
51
|
+
bg.update
|
52
|
+
|
53
|
+
rad = Math::PI/180.0*bg.angle
|
54
|
+
sina = Math.sin(rad)
|
55
|
+
cosa = Math.cos(rad)
|
56
|
+
bgy1 = (530 - bg.y) / 290.0
|
57
|
+
bgy2 = bg.y - 240
|
58
|
+
z.delete_if do |obj|
|
59
|
+
drawx = ((obj.x - 320) / obj.z * cosa - (((obj.y - 240) / obj.z - 50) * bgy1 + bgy2) * sina) + 320
|
60
|
+
drawy = ((obj.x - 320) / obj.z * sina + (((obj.y - 240) / obj.z - 50) * bgy1 + bgy2) * cosa) + 240
|
61
|
+
|
62
|
+
Window.drawEx(drawx - image.width / 2, drawy - image.height / 2, image, :scalex=>5.0 / obj.z, :scaley=>5.0 / obj.z, :z=>5 - obj.z, :angle=>bg.angle)
|
63
|
+
|
64
|
+
obj.x += bg.angle / 3.0
|
65
|
+
obj.z -= 0.15
|
66
|
+
if obj.z < 0.5 then
|
67
|
+
true
|
68
|
+
else
|
69
|
+
false
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
break if Input.keyPush?(K_ESCAPE)
|
74
|
+
Window.drawFont(0, 448, Window.getLoad.to_i.to_s + " %", font)
|
75
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
module HitRange
|
2
|
+
PointImage = Image.new(1, 1, [200, 255, 255, 0])
|
3
|
+
BoxImage = {}
|
4
|
+
CircleImage = {}
|
5
|
+
TriangleImage = {}
|
6
|
+
|
7
|
+
def HitRange.view(ary)
|
8
|
+
ary.each do |d|
|
9
|
+
range = d.getHitRange
|
10
|
+
case range.size
|
11
|
+
when 2 # point
|
12
|
+
Window.draw(range[0], range[1], PointImage, 10000)
|
13
|
+
when 3 # circle
|
14
|
+
x = range[0]
|
15
|
+
y = range[1]
|
16
|
+
r = range[2]
|
17
|
+
if CircleImage.has_key?(r) == false then
|
18
|
+
image = Image.new(r*2+1, r*2+1).circle(r, r, r, [200, 255, 255, 0])
|
19
|
+
CircleImage[r] = image
|
20
|
+
end
|
21
|
+
Window.draw(x - r, y - r, CircleImage[r], 10000)
|
22
|
+
when 4 # box
|
23
|
+
x1 = range[0]
|
24
|
+
y1 = range[1]
|
25
|
+
x2 = range[2]
|
26
|
+
y2 = range[3]
|
27
|
+
key = (x2 - x1).to_s + "," + (y2 - y1).to_s
|
28
|
+
if BoxImage.has_key?(key) == false then
|
29
|
+
image = Image.new(x2-x1+1, y2-y1+1)
|
30
|
+
image.line(0, 0, x2-x1, 0, [200, 255, 255, 0])
|
31
|
+
image.line(x2-x1, 0, x2-x1, y2-y1, [200, 255, 255, 0])
|
32
|
+
image.line(x2-x1, y2-y1, 0, y2-y1, [200, 255, 255, 0])
|
33
|
+
image.line(0, y2-y1, 0, 0, [200, 255, 255, 0])
|
34
|
+
BoxImage[key] = image
|
35
|
+
end
|
36
|
+
Window.draw(x1, y1, BoxImage[key], 10000)
|
37
|
+
when 6 # triangle
|
38
|
+
x1 = range[0]
|
39
|
+
y1 = range[1]
|
40
|
+
x2 = range[2]
|
41
|
+
y2 = range[3]
|
42
|
+
x3 = range[4]
|
43
|
+
y3 = range[5]
|
44
|
+
key = (x2 - x1).to_s + "," + (y2 - y1).to_s + "," + (x3 - x1).to_s + "," + (y3 - y1).to_s
|
45
|
+
temp = (x1 < x2 ? x1 : x2)
|
46
|
+
minx = (temp < x3 ? temp : x3)
|
47
|
+
temp = (x1 > x2 ? x1 : x2)
|
48
|
+
maxx = (temp > x3 ? temp : x3)
|
49
|
+
temp = (y1 < y2 ? y1 : y2)
|
50
|
+
miny = (temp < y3 ? temp : y3)
|
51
|
+
temp = (y1 > y2 ? y1 : y2)
|
52
|
+
maxy = (temp > y3 ? temp : y3)
|
53
|
+
|
54
|
+
if TriangleImage.has_key?(key) == false then
|
55
|
+
image = Image.new(maxx-minx+1, maxy-miny+1)
|
56
|
+
image.line(x1-minx, y1-miny, x2-minx, y2-miny, [200, 255, 255, 0])
|
57
|
+
image.line(x2-minx, y2-miny, x3-minx, y3-miny, [200, 255, 255, 0])
|
58
|
+
image.line(x3-minx, y3-miny, x1-minx, y1-miny, [200, 255, 255, 0])
|
59
|
+
TriangleImage[key] = image
|
60
|
+
end
|
61
|
+
Window.draw(minx, miny, TriangleImage[key], 10000)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
@@ -0,0 +1,270 @@
|
|
1
|
+
#!ruby -Ks
|
2
|
+
# DXRuby �ȈՃ}�b�v�G�f�B�^
|
3
|
+
require 'dxruby'
|
4
|
+
|
5
|
+
# �}�b�v�f�[�^
|
6
|
+
map=[
|
7
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
8
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
9
|
+
[1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
10
|
+
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
11
|
+
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1],
|
12
|
+
[0, 0, 0, 0, 1, 4, 4, 4, 4, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 1, 1, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1],
|
13
|
+
[2, 2, 2, 2, 1, 1, 4, 4, 4, 4, 0, 0, 0, 0, 0, 4, 4, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1],
|
14
|
+
[2, 2, 2, 1, 2, 1, 1, 4, 4, 4, 4, 0, 0, 0, 0, 4, 4, 4, 1, 1, 1, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1],
|
15
|
+
[2, 2, 2, 1, 1, 1, 1, 1, 4, 4, 4, 0, 0, 0, 0, 0, 4, 4, 1, 1, 1, 1, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1],
|
16
|
+
[2, 2, 2, 2, 2, 2, 1, 1, 4, 4, 4, 0, 0, 0, 0, 0, 4, 4, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1],
|
17
|
+
[1, 2, 2, 2, 2, 2, 2, 1, 4, 4, 4, 0, 0, 0, 0, 0, 4, 4, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1],
|
18
|
+
[1, 1, 1, 2, 2, 1, 2, 1, 4, 4, 4, 0, 0, 0, 0, 0, 4, 4, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3],
|
19
|
+
[1, 1, 2, 1, 2, 2, 1, 4, 4, 4, 0, 0, 0, 0, 0, 0, 4, 4, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3],
|
20
|
+
[1, 1, 1, 2, 2, 1, 4, 4, 4, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3],
|
21
|
+
[1, 1, 1, 2, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3],
|
22
|
+
[1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3],
|
23
|
+
[1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1],
|
24
|
+
[1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 4, 4, 1, 4, 1, 4, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
25
|
+
[1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
26
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 4, 4, 4, 4, 4, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
27
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 4, 4, 4, 4, 4, 4, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
28
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 4, 4, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
29
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 4, 4, 4, 4, 1, 4, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1],
|
30
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 4, 4, 4, 4, 4, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
31
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 0],
|
32
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 0, 0],
|
33
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 0, 0, 0],
|
34
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0],
|
35
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0],
|
36
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
37
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
|
38
|
+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1]
|
39
|
+
]
|
40
|
+
takasa=[
|
41
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
|
42
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
|
43
|
+
[3, 3, 3, 3, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
|
44
|
+
[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
|
45
|
+
[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 3, 3, 3, 3, 3, 3, 3],
|
46
|
+
[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 5, 5, 5, 3, 3, 3, 3, 3],
|
47
|
+
[4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 6, 6, 6, 3, 3, 3, 3],
|
48
|
+
[4, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 7, 7, 8, 7, 3, 3, 3],
|
49
|
+
[4, 3, 5, 5, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 5, 6, 7, 8, 8, 6, 3, 3],
|
50
|
+
[3, 6, 5, 5, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 4, 5, 6, 6, 8, 9, 6, 5, 3],
|
51
|
+
[4, 5, 3, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 5, 6, 6, 8, 7, 6, 6, 3],
|
52
|
+
[3, 3, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 4, 5, 5, 6, 6, 6, 6, 6, 5],
|
53
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 5, 5, 5, 6, 6, 6, 5],
|
54
|
+
[3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 5, 5, 5, 5, 5, 5],
|
55
|
+
[3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 5, 5, 5, 5],
|
56
|
+
[3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 5],
|
57
|
+
[3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4],
|
58
|
+
[3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 4],
|
59
|
+
[3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 4],
|
60
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 4, 4, 4, 3, 3, 3, 3, 3, 3],
|
61
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 4, 3, 3, 3, 3, 3, 3, 3, 3],
|
62
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3],
|
63
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3],
|
64
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 3, 3, 3],
|
65
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2],
|
66
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2],
|
67
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 2],
|
68
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2],
|
69
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
|
70
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
|
71
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
|
72
|
+
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3]
|
73
|
+
]
|
74
|
+
# �G�̃f�[�^�����
|
75
|
+
mapimage = Array.new(5) {Image.new(32, 32)}
|
76
|
+
for i in 0..7 do # �Ђ��`�ɒn�ʂ�`��
|
77
|
+
mapimage[0].line(15 - i * 2, i + 16, 16 + i * 2, i + 16, [100, 100, 200]) # ��
|
78
|
+
mapimage[0].line(15 - i * 2, 31 - i, 16 + i * 2, 31 - i, [100, 100, 200])
|
79
|
+
mapimage[0][15 - i * 2, i + 16] = [0, 0, 0]
|
80
|
+
mapimage[0][16 + i * 2, i + 16] = [0, 0, 0]
|
81
|
+
for j in 1..3 do
|
82
|
+
mapimage[j].line(15 - i * 2, i + 16, 16 + i * 2, i + 16, [50, 200, 50]) # ���n
|
83
|
+
mapimage[j].line(15 - i * 2, 31 - i, 16 + i * 2, 31 - i, [50, 200, 50])
|
84
|
+
mapimage[j][15 - i * 2, i + 16] = [0, 0, 0]
|
85
|
+
mapimage[j][16 + i * 2, i + 16] = [0, 0, 0]
|
86
|
+
end
|
87
|
+
mapimage[4].line(15 - i * 2, i + 16, 16 + i * 2, i + 16, [200, 200, 150]) # ���n
|
88
|
+
mapimage[4].line(15 - i * 2, 31 - i, 16 + i * 2, 31 - i, [200, 200, 150])
|
89
|
+
mapimage[4][15 - i * 2, i + 16] = [0, 0, 0]
|
90
|
+
mapimage[4][16 + i * 2, i + 16] = [0, 0, 0]
|
91
|
+
end
|
92
|
+
mapimage[2].boxFill(13, 16, 18, 26, [200, 50, 50]) # ��
|
93
|
+
mapimage[2].line(13, 16, 13, 26, [0, 0, 0])
|
94
|
+
mapimage[2].line(18, 16, 18, 26, [0, 0, 0])
|
95
|
+
mapimage[2].circleFill(16, 8, 8, [0, 255, 0])
|
96
|
+
mapimage[2].circle(16, 8, 8, [0, 0, 0])
|
97
|
+
for i in 1..24 do # �R
|
98
|
+
mapimage[3].line(15 - i*2/4, i, 16 + i*2/4, i, [200, 100, 100])
|
99
|
+
mapimage[3][15 - i*2/4, i] = [0, 0, 0]
|
100
|
+
mapimage[3][16 + i*2/4, i] = [0, 0, 0]
|
101
|
+
end
|
102
|
+
# �n�ʂ̃T�C�h�摜�����
|
103
|
+
sideimage = Array.new(5) {Image.new(32, 16)}
|
104
|
+
for i in 0..15 do
|
105
|
+
sideimage[0].line(i, i / 2, i, i / 2 + 8, [60, 60, 180]) # ��
|
106
|
+
sideimage[0].line(31 - i, i / 2, 31 - i, i / 2 + 8, [130, 130, 200])
|
107
|
+
for j in 1..3 do
|
108
|
+
sideimage[j].line(i, i / 2, i, i / 2 + 8, [40, 150, 40]) # ���ȊO
|
109
|
+
sideimage[j].line(31 - i, i / 2, 31 - i, i / 2 + 8, [100, 220, 100])
|
110
|
+
end
|
111
|
+
sideimage[4].line(i, i / 2, i, i / 2 + 8, [150, 150, 120]) # ���n
|
112
|
+
sideimage[4].line(31 - i, i / 2, 31 - i, i / 2 + 8, [220, 220, 170])
|
113
|
+
end
|
114
|
+
wakuimage = Image.new(36, 36, [255, 255, 255]). # �I��g
|
115
|
+
boxFill(2, 2, 33, 33, [0, 0, 0])
|
116
|
+
blackimage = Image.new(128, 480, [0, 0, 0]) # �E���w�i
|
117
|
+
|
118
|
+
select = 0
|
119
|
+
|
120
|
+
# �N���b�N�ʒu�����
|
121
|
+
def check(x, y, map, takasa)
|
122
|
+
# ��O���猟�����邽�߂ɋt��
|
123
|
+
31.downto(0) do |i|
|
124
|
+
31.downto(0) do |j|
|
125
|
+
# �Ђ��`�̒��ɂ��邩�ׂ�
|
126
|
+
if ((j * 16 - i * 16 + 176 - x)/2).abs + (j * 8 + i * 8 - takasa[i][j]*8 + 24 - y).abs < 9 then
|
127
|
+
return [i, j]
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
return nil
|
132
|
+
end
|
133
|
+
|
134
|
+
# ���C�����[�v
|
135
|
+
Window.loop do
|
136
|
+
|
137
|
+
# �}�E�X�N���b�N
|
138
|
+
if Input.mouseDown?(M_LBUTTON) or Input.mouseDown?(M_RBUTTON) then
|
139
|
+
x, y = Input.mousePosX, Input.mousePosY
|
140
|
+
if x >= 512 then # �E�̂ق��Ȃ�
|
141
|
+
for i in 0..mapimage.size-1
|
142
|
+
if x >= 560 and x < 592 and y >= i * 64 + 64 and y < i * 64 + 96 then
|
143
|
+
select = i
|
144
|
+
break
|
145
|
+
end
|
146
|
+
end
|
147
|
+
else # ���̂ق��Ȃ�
|
148
|
+
if x > 0 and y > 0 and y < 480 then
|
149
|
+
if Input.keyDown?(K_LSHIFT) then
|
150
|
+
if Input.mousePush?(M_LBUTTON) then # �V�t�g���N���b�N�Œn�ʂ��グ��
|
151
|
+
temp = check(x, y, map, takasa)
|
152
|
+
if temp != nil then
|
153
|
+
takasa[temp[0]][temp[1]] += 1 if takasa[temp[0]][temp[1]] < 10
|
154
|
+
end
|
155
|
+
end
|
156
|
+
if Input.mousePush?(M_RBUTTON) then # �V�t�g�E�N���b�N�Œn�ʂ�������
|
157
|
+
temp = check(x, y, map, takasa)
|
158
|
+
if temp != nil then
|
159
|
+
takasa[temp[0]][temp[1]] -= 1 if takasa[temp[0]][temp[1]] > 0
|
160
|
+
end
|
161
|
+
end
|
162
|
+
else
|
163
|
+
if Input.mouseDown?(M_LBUTTON) then # ���N���b�N�̓}�b�v�`�b�v�Z�b�g
|
164
|
+
temp = check(x, y, map, takasa)
|
165
|
+
if temp != nil then
|
166
|
+
map[temp[0]][temp[1]] = select
|
167
|
+
end
|
168
|
+
end
|
169
|
+
if Input.mouseDown?(M_RBUTTON) then # �E�N���b�N�ŃX�|�C�g�@�\
|
170
|
+
temp = check(x, y, map, takasa)
|
171
|
+
if temp != nil then
|
172
|
+
select = map[temp[0]][temp[1]]
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
# �J�[�\���L�[�̍��E
|
181
|
+
if Input.keyPush?(K_RIGHT) then # �E��]
|
182
|
+
map = map.transpose
|
183
|
+
takasa = takasa.transpose
|
184
|
+
map.each do |d|
|
185
|
+
d.reverse!
|
186
|
+
end
|
187
|
+
takasa.each do |d|
|
188
|
+
d.reverse!
|
189
|
+
end
|
190
|
+
end
|
191
|
+
if Input.keyPush?(K_LEFT) then # ����]
|
192
|
+
3.times do
|
193
|
+
map = map.transpose
|
194
|
+
takasa = takasa.transpose
|
195
|
+
map.each do |d|
|
196
|
+
d.reverse!
|
197
|
+
end
|
198
|
+
takasa.each do |d|
|
199
|
+
d.reverse!
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
# �}�b�v�S�̕`��
|
205
|
+
for i in 0..30 do
|
206
|
+
for j in 0..30 do
|
207
|
+
z = 0
|
208
|
+
tmp = takasa[i][j]
|
209
|
+
if takasa[i][j+1] < tmp or takasa[i+1][j] < tmp then
|
210
|
+
tmp2 = takasa[i][j+1] > takasa[i+1][j] ? takasa[i+1][j] : takasa[i][j+1]
|
211
|
+
z = tmp2 * 8
|
212
|
+
(tmp - tmp2).times do # �������A�T�C�h�摜��`�悷�郋�[�v
|
213
|
+
Window.draw(j * 16 - i * 16 + 160, j * 8 + i * 8 - z + 16, sideimage[map[i][j]])
|
214
|
+
z = z + 8
|
215
|
+
end
|
216
|
+
else
|
217
|
+
z = takasa[i][j] * 8
|
218
|
+
end
|
219
|
+
Window.draw(j * 16 - i * 16 + 160, j * 8 + i * 8 - z, mapimage[map[i][j]])
|
220
|
+
end
|
221
|
+
end
|
222
|
+
for i in 0..31 do
|
223
|
+
z = 0
|
224
|
+
takasa[i][31].times do # �������A�T�C�h�摜��`�悷�郋�[�v
|
225
|
+
Window.draw(31 * 16 - i * 16 + 160, 31 * 8 + i * 8 - z + 16, sideimage[map[i][31]])
|
226
|
+
z = z + 8
|
227
|
+
end
|
228
|
+
Window.draw(31 * 16 - i * 16 + 160, 31 * 8 + i * 8 - z, mapimage[map[i][31]])
|
229
|
+
end
|
230
|
+
for j in 0..31 do
|
231
|
+
z = 0
|
232
|
+
takasa[31][j].times do # �������A�T�C�h�摜��`�悷�郋�[�v
|
233
|
+
Window.draw(j * 16 - 31 * 16 + 160, j * 8 + 31 * 8 - z + 16, sideimage[map[31][j]])
|
234
|
+
z = z + 8
|
235
|
+
end
|
236
|
+
Window.draw(j * 16 - 31 * 16 + 160, j * 8 + 31 * 8 - z, mapimage[map[31][j]])
|
237
|
+
end
|
238
|
+
|
239
|
+
# �E���w�i�`��
|
240
|
+
Window.draw(512, 0, blackimage)
|
241
|
+
|
242
|
+
# �I��g�`��
|
243
|
+
Window.draw(558, select * 64 + 62, wakuimage)
|
244
|
+
|
245
|
+
# �}�b�v�`�b�v�`��
|
246
|
+
mapimage.each_with_index do |m, i|
|
247
|
+
Window.draw(560, i * 64 + 64, m)
|
248
|
+
end
|
249
|
+
|
250
|
+
# ��ʃf�[�^�N���A
|
251
|
+
if Input.keyPush?(K_C) then
|
252
|
+
map = Array.new(32) { [1] * 32 }
|
253
|
+
takasa = Array.new(32) { [3] * 32 }
|
254
|
+
end
|
255
|
+
|
256
|
+
# �}�b�v�f�[�^�o��
|
257
|
+
if Input.keyPush?(K_ESCAPE) then
|
258
|
+
s1 = "map=[\n"
|
259
|
+
s2 = "takasa=[\n"
|
260
|
+
for i in 0..30 do
|
261
|
+
s1 = s1 + map[i].inspect + ",\n"
|
262
|
+
s2 = s2 + takasa[i].inspect + ",\n"
|
263
|
+
end
|
264
|
+
s1 = s1 + map[31].inspect + "\n]\n"
|
265
|
+
s2 = s2 + takasa[31].inspect + "\n]\n"
|
266
|
+
print s1
|
267
|
+
print s2
|
268
|
+
break
|
269
|
+
end
|
270
|
+
end
|