LoginSignup
1
1

More than 5 years have passed since last update.

DXRuby API互換のゲームライブラリを作るための頻出メソッド一覧

Last updated at Posted at 2016-12-04

Ruby用ゲームライブラリ DXRuby は、使いやすく人気の高いライブラリです。だだし、Windows上でしか動かないため、Macなど他のOSで動かそうという試みがいくつかなされてきました。

このうち Wine上で本物のDXRubyを動かす以外は、DXRubyのAPI互換ライブラリを作ろうというものなので、なかなか100%互換とはいきません。

そこで、これからAPIの互換性を高めて開発していくための目安として、いくつかのDXRubyプログラムと、これまで作られたAPI互換ライブラリで採用されたメソッド、定数を一覧にしてみました。

今後の開発の助けになれば幸いです。
(なお、調査はあくまで著者個人で行ったものなのをご承知おきください。)

参考;
→・よくわかる Ruby ゲーム開発のいま - あおたくノート
→・「中高生国際Rubyプログラミングコンテスト2016 in Mitaka」の最終審査対象作品はすべてDXRubyを使っていました。

参考にしたプログラム・ライブラリ

○ 『オブジェクト指向言語「Rubyプログラミング入門」テキスト(初心者用または講師用)2nd Edition』(まちづくり三鷹著・刊、2015年)
(dxruby on nanogl が対応させる予定にしている書籍)
△ 『小学生から楽しむRubyプログラミング』(まちづくり三鷹著、日経BP社刊、2014年)
DXRubyで 0から作る「ブロック崩し」 - noanoa 日々の日記

dxruby_sdl
dxsdl2r

 
上記資料で使われたDXRubyのメソッド・定数の頭に、資料の記号をつけてあります。
(DXRubyのメソッド・定数一覧は、DXRuby 1.4.5 リファレンスマニュアル から)

module Input

○□●■ x
□●■ y
●■ key_down?
○△●■ key_push?
■ key_release?
● pad_down?
● pad_push?
pad_release?
● set_repeat
set_key_repeat
set_pad_repeat
set_config
■ mouse_x
■ mouse_y
○△□●■ mouse_pos_x
○△□●■ mouse_pos_y
set_mouse_pos
○●■ mouse_down?
○△●■ mouse_push?
○■ mouse_release?
mouse_wheel_pos
mouse_wheel_pos=
mouse_enable=
● keys
pads
requested_close?
■ update
pad_num
pad_axis
pad_lstick
pad_rstick
pad_pov
pad_lx
pad_ly
pad_rx
pad_ry
pad_pov_x
pad_pov_y
set_cursor

module Window

○△□●■ loop
close
created?
closed?
○△□●■ draw
○△● draw_scale
draw_rot
draw_alpha
draw_add
draw_sub
■ draw_shader
●■ draw_ex
○●■ draw_font
draw_font_ex
draw_morph
draw_tile
draw_pixel
draw_line
draw_box
■ draw_box_fill
draw_circle
draw_circle_fill
ox
ox=
oy
oy=
get_screen_shot
get_load
● open_filename
save_filename
folder_dialog
create
sync
○ update
load_icon
hWnd
x
x=
y
y=
●■ width
○△■ width=
●■ height
○△■ height=
●■ caption
○△●■ caption=
● scale
scale=
windowed?
windowed=
full_screen?
full_screen=
■ real_fps
fps
●■ fps=
frameskip?
frameskip=
●■ bgcolor
●■ bgcolor=
min_filter
min_filter=
mag_filter
mag_filter=
resize
active?
running_time
get_screen_modes
get_current_modes
discard
decide
before_call
after_call

class Font

○△●■ new
■ install
default
default=

dispose
disposed?
● get_width
size
fontname
name
italic
weight
auto_fitting
info

class Image

○△□●■ new
○△●■ load
●■ load_tiles
create_from_array
load_from_file_in_memory
perlin_noise
octave_perlin_noise
custom_perlin_noise
perlin_seed

dispose
delayed_dispose
disposed?
■ []
■ []=
● compare
○●■ line
△●■ box
○△●■ box_fill
●■ circle
○△□●■ circle_fill
triangle
triangle_fill
fill
■ clear
copy_rect
△● draw
△● draw_font
draw_font_ex
save
● slice
slice_tiles
dup
clone
○△● set_color_key
△□●■ width
○△□●■ height
flush
effect_image_font
change_hls

class RenderTarget

●■ new

dispose
disposed?
●■ draw
draw_scale
draw_rot
draw_alpha
draw_add
draw_sub
■ draw_shader
■ draw_ex
●■ draw_font
draw_font_ex
draw_morph
draw_tile
draw_pixel
draw_line
draw_box
draw_box_fill
draw_circle
draw_circle_fill
■ update
■ width
■ height
■ bgcolor
■ bgcolor=
min_filter
min_filter=
mag_filter
mag_filter=
to_image
discard
decide
resize
ox
ox=
oy
oy=

class Shader

■ new

technique
technique=
setter/getter

class Shader::Core

■ new

dispose

class Sound

○● new
load_from_memory

dispose
disposed?
○● play
start=
loop_start=
loop_end=
loop_count=
● stop
● set_volume
pan
pan=
frequency
frequency=

class SoundEffect

SoundEffect
● new
  ● WAVE_SIN
  ● WAVE_SAW
  ● WAVE_TRI
  ● WAVE_RECT

disposed?
● add
● play
● stop
save

class Sprite

□●■ new
□● check
●■ update
□●■ draw
□●■ clean

□● draw
□● ===
□● check
□■ x
□■ x=
□■ y
□■ y=
■ z
■ z=
angle
angle=
scale_x
scale_x=
scale_y
scale_y=
center_x
center_x=
center_y
center_y=
alpha
alpha=
blend
blend=
■ shader
■ shader=
□■ image
●■ image=
■ target
■ target=
■ collision
■ collision=
collision_enable
collision_enable=
collision_sync
collision_sync=
visible
visible=
□●■ vanish
●■ vanished?
param_hash
offset_sync
offset_sync=

キーコード定数

マウス
△●■ M_LBUTTON 左ボタン
●■ M_MBUTTON 中ボタン
●■ M_RBUTTON 右ボタン

パッド定数
● P_UP
● P_LEFT
● P_RIGHT
● P_DOWN
● P_BUTTON0(ボタン15まで)
● P_L_UP(アナログ左スティックのデジタル入力)
● P_L_LEFT
● P_L_RIGHT
● P_L_DOWN
● P_R_UP(アナログ右スティックのデジタル入力)
● P_R_LEFT
● P_R_RIGHT
● P_R_DOWN
● P_D_UP(アナログPOVのデジタル入力)
● P_D_LEFT
● P_D_RIGHT
● P_D_DOWN

キーボード
○△●■ K_ESCAPE Esc
● K_1 1
● K_2 2
● K_3 3
● K_4 4
● K_5 5
● K_6 6
● K_7 7
● K_8 8
● K_9 9
● K_0 0
● K_MINUS -
● K_EQUALS =
● K_BACK Backspace
● K_TAB Tab
● K_Q Q
● K_W W
● K_E E
● K_R R
● K_T T
● K_Y Y
● K_U U
● K_I I
● K_O O
● K_P P
● K_LBRACKET [
● K_RBRACKET ]
● K_RETURN Enter
●■ K_LCONTROL 左Ctrl
● K_A A
● K_S S
● K_D D
● K_F F
● K_G G
● K_H H
● K_J J
● K_K K
● K_L L
● K_SEMICOLON ;
● K_APOSTROPHE '
● K_GRAVE `
●■ K_LSHIFT 左Shift
● K_BACKSLASH \
●■ K_Z Z
●■ K_X X
●■ K_C C
● K_V V
● K_B B
● K_N N
● K_M M
● K_COMMA ,
● K_PERIOD .
● K_SLASH /
●■ K_RSHIFT 右Shift
● K_MULTIPLY *
● K_LMENU 左Alt
● △■ K_SPACE Space
● K_CAPITAL Caps Lock
● K_F1 F1
● K_F2 F2
● K_F3 F3
● K_F4 F4
● K_F5 F5
● K_F6 F6
● K_F7 F7
● K_F8 F8
● K_F9 F9
● K_F10 F10
● K_NUMLOCK NumLock
● K_SCROLL ScrollLock
● K_NUMPAD7 7
● K_NUMPAD8 8
● K_NUMPAD9 9
● K_SUBTRACT -
● K_NUMPAD4 4
● K_NUMPAD5 5
● K_NUMPAD6 6
● K_ADD + *3
● K_NUMPAD1 1
● K_NUMPAD2 2
● K_NUMPAD3 3
● K_NUMPAD0 0
● K_DECIMAL .
● K_OEM_102 不明
● K_F11 F11
● K_F12 F12
● K_F13 F13
● K_F14 F14
● K_F15 F15
● K_KANA カタカナひらがな
● K_ABNT_C1 不明
● K_CONVERT 変換
● K_NOCONVERT 無変換
● K_YEN ¥
● K_ABNT_C2 不明
● K_NUMPADEQUALS =
● K_PREVTRACK ^
● K_AT @
● K_COLON :
● K_UNDERLINE _
● K_KANJI 半角/全角
● K_STOP 不明
● K_AX 不明
● K_UNLABELED 不明
● K_NEXTTRACK 不明
● K_NUMPADENTER Enter
●■ K_RCONTROL 右Ctrl
● K_MUTE 不明
● K_CALCULATOR 不明
● K_PLAYPAUSE 不明
● K_MEDIASTOP 不明
● K_VOLUMEDOWN 不明
● K_VOLUMEUP 不明
● K_WEBHOME 不明
● K_NUMPADCOMMA ,
● K_DIVIDE /
● K_SYSRQ 不明
● K_RMENU 右Alt
● K_PAUSE PauseBreak
● K_HOME Home
●■ K_UP ↑
● K_PRIOR 不明
●■ K_LEFT ←
●■ K_RIGHT →
● K_END End
●■ K_DOWN ↓
● K_NEXT 不明
● K_INSERT Insert
● K_DELETE Delete
● K_LWIN 左Windows
● K_RWIN 右Windows
● K_APPS アプリケーション
● K_POWER 不明
● K_SLEEP 不明
● K_WAKE 不明
● K_WEBSEARCH 不明
● K_WEBFAVORITES 不明
● K_WEBREFRESH 不明
● K_WEBSTOP 不明
● K_WEBFORWARD 不明
● K_WEBBACK 不明
● K_MYCOMPUTER 不明
● K_MAIL 不明
● K_MEDIASELECT 不明
● K_BACKSPACE Backspace
● K_NUMPADSTAR *
K_LALT 左Alt
K_CAPSLOCK CapsLock
K_NUMPADMINUS -
K_NUMPADPLUS +
K_NUMPADPERIOD .
K_NUMPADSLASH /
K_RALT 右Alt
△ K_UPARROW ↑
K_PGUP PageUp
△ K_LEFTARROW ←
△ K_RIGHTARROW →
△ K_DOWNARROW ↓
K_PGDN PageDown

色定数

C_BLACK [255, 0, 0, 0]
□■ C_RED [255, 255, 0, 0]
C_GREEN [255, 0, 255, 0]
C_BLUE [255, 0, 0, 255]
C_YELLOW [255, 255, 255, 0]
C_CYAN [255, 0, 255, 255]
C_MAGENTA [255, 255, 0, 255]
○□■ C_WHITE [255, 255, 255, 255]
C_DEFAULT [0, 0, 0, 0]

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1