LoginSignup
1
1

More than 1 year has passed since last update.

Rubyとmittsuライブラリを使って3D対戦アクションゲームつくってみた

Last updated at Posted at 2022-08-26

概要

この記事は私が躓いた当たり判定についての備忘録です。
2022夏のRuby合宿にて今回のゲームを作成しました。
作ったゲームのリポジトリはこちらです。初対面のメンバー4人でチーム開発&初めてGit,Github使って開発しました。
使用した技術はRuby, mittsuライブラリです。
自分は当たり判定を主に担当しましたので、当たり判定で困っている方の助けになれば嬉しいです。
アイデア出し含む制作期間は4日です

この記事で伝えたいこと

当たり判定で躓いてからどのように修正したのかの思考過程

ゲームの概要

3Dぴんぽんバトル

Install

depends on Ruby 2.x, Mittsu, OpenGL 3.3+, and GLFW 3.1.x
Mittsu:https://github.com/danini-the-panini/mittsu

ゲーム内容

3D空間で卓球をします。
勝利条件:4点先取

操作方法

space:スタート&リスタート

左ラケット

W:上移動
A:左移動
S:下移動
D:右移動

右ラケット

↑:上移動
←:左移動
↓:下移動
→:右移動


デモ動画です。

苦労したポイント

  • 当たり判定
    初め、板の中心とボールの中心との距離で判別していたため板の中心にしか当たり判定がなかった。
    IMG_1020.jpg
    かといって当たり判定をデカくしすぎると違和感しかない。なのでラケットの後ろに当たり判定用の物体を生成してそれとボールの距離で判別することにした。
    kaizen.jpg
    ただ、どれくらい後ろに置けばよいのかわからん。なので公式(?)を作ってみた

IMG_1022.jpg
実装してみるといい感じになったので合ってそう
ただ、これだとまだ問題があって
IMG_1024.jpg
角に判定がないので大きめに判定をすることでごまかしました(ガバ)

感想

公式作ってるおかげでボール・ラケットを大きくしても当たり判定が正常に動作してくれるの嬉しかった
反省としては、mainファイルにいろんな機能を入れた結果読みづらいコードになった。なので次回以降は機能ごとに別ファイルにまとめることを意識してコーディングしていこうかなと
影つけるだけでカクついたので今度はRubyじゃなくてUnityでゲーム開発しようと思います。
チームメンバーのみなさま本当にありがとうございました。

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