LoginSignup
0
0

DXRuby ゲーム制作リファレンス

Posted at

Windowのサイズについて

Window.width = 360
Window.height =  480

画像関係

画像データの読み込みの方法

一つのファイルに一つの画像しか無いときに使う

image = Image.load("filepath")

一つのファイルに全てのサイズが同じである複数の画像がある場合に使う

image_array = Image.load_tiles("filepath", xcount, ycount)

画像を読み込み、表示する方法

# coding: utf-8
require 'dxruby'
x = 0
y = 0

image = Image.load_tiles("./character.png", 4, 4)

sample_sprite = Sprite.new(x, y, image[0])

Window.loop do
  Sprite.draw(sample_sprite)
end

画像データの画面内移動のしかた

Window.loop do
  sample_sprite.x += 1
  sample_sprite.y += 1
  Sprite.draw(sample_sprite)
end

操作関係

キャラクタの操作の実装方法

Window.loop do
  if Input.keyDown?(K_L)
    sample_sprite.x += 1
  end
  Sprite.draw(sample_sprite)
end
メソッド 意味
keyDown? キーボードのキーが押されている間、実行される
keyPush? キーボードのキーが押された瞬間のみ、実行される

■ 右に進む場合 sample_sprite.x += 1

■ 左に進む場合 sample_sprite.x -= 1

■ 上に進む場合 sample_sprite.y -= 1

■ 下に進む場合 sample_sprite.y += 1

使いたいキーのコードを調べたい場合、 DXRuby キーコードリファレンス を参照して下さい。

マウスカーソルの入力

require 'dxruby'

chara_img = Image.load('./character.png')  
chara = Sprite.new(100, 100, chara_img)

Window.loop do
  x = Input.mouse_x  # マウスカーソルのx座標
  y = Input.mouse_y  # マウスカーソルのy座標
  
  chara = Sprite.new(x, y, chara_img)
  Window.draw(x, y, image)  # data.pngを描画する
end

衝突判定

image = Image.load_tiles("./character.png", 4, 4)
sample_sprite = Sprite.new(200, 200, image[0])

image_box = Image.load_tiles("./image/colorbox.png", 6, 1)
box = Sprite.new(400, 200, image_box[0])

Window.loop do
  if Input.keyDown?(K_L)
    sample_sprite.x += 1
  
    if sample_sprite === box
      sample_sprite.x -= 1
    end
  end

  Sprite.draw(sample_sprite)
  Sprite.draw(box)
end

ブロックの出現場所を制御する

randメソッドを使って、ブロックが出現する時のx座標の位置をランダムにする

item = nil

Window.loop do
  if item.nil? = true
      x = rand(340)
      item = Sprite.new(x, y, image_box[0])
  end

  Sprite.draw(item)
end

文字の描画

# coding: utf-8
require 'dxruby'

font = Font.new([32])

Window.loop do
  Window.draw_font(100, 100, "ふぉんと", font)
end

文字列に"\n"をいれると改行することができる。

数値を文字列に変換して表示させたい場合

#{変数名.to_s}で文字列に変換する

# coding: utf-8
require 'dxruby'
score = 50
font = Font.new([32])

Window.loop do
  Window.draw_font(100, 100, "score: #{score.to_s}", font)
end
0
0
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
0
0