Help us understand the problem. What is going on with this article?

DXRuby:「当たり判定」を自分で作ってみよう

概要

この記事は中学高校生向けプログラミング教室の教材として作ったものを一部改変したものです。

ゲームで大変よく使う「当たり判定」(衝突判定)について、DXRubyでは===checkなどの便利な機能が付いています。しかし、いつもこのような機能が使えるとは限りません。

では、自分で作るとしたらどうしたらよいでしょうか?実は、いろいろな判定方法が考えられます。

atari_7b.png

atari_en7b.png

前の記事
プログラミング初心者向け:DXRubyで 1ステップずつ作っていく「ブロック崩し」 - Qiita

次の記事
DXRuby:「当たり判定」を自分で作ってみよう A. 四角形の四隅の座標で判定する - Qiita

当たり(衝突)判定の方法

いろいろなやり方が考えられるでしょうが、まずは以下の3通りのやり方が思いつきます。

A. 四角形の四隅の座標で判定する
B. 円の中心からの距離で判定する
C. 色で判定する

それぞれ、別記事になっています。

技術解説

ソースコード

https://github.com/noanoa07/dxruby_blocks

使用ライブラリ

Windows向けRuby用2DゲームライブラリDXRubyを使用します。
バージョン1.4.2以上を想定しています。

1.4.2より前のバージョンとの主な相違点

  • Window.loopが複数置ける

  • マウス位置を取得するInput.mouse_pos_xInput.mouse_pos_yの新しい書き方として、Input.mouse_xInput.mouse_yが追加

→ DXRuby 1.4.6:更新履歴

http://mirichi.github.io/dxruby-doc/CHANGELOG.html

DXRubyインストールの注意点

→ DXRuby 1.4.6 をWindows10で使う時の注意点とインストール方法 - noanoa07 - Qiita
https://qiita.com/noanoa07/items/0ce14c2404df38de94b7

参考サイト

困ったときは、このページの「チュートリアル」と「マニュアル」にだいたい書いてあります。

古いバージョンのリファレンスも役に立つときがあります。

このテキストのブログ記事での解説です。

ライセンス

ソースコード、本解説ともにパブリックドメイン

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away