クロの制作日記

クロの制作日記

田舎の大学生がUnityとか機械学習関連の制作物をひたすらアップします。ブログで紹介したコード一覧https://github.com/kuroshum/blog_code

初心者が頑張るゲームプログラミングC++の練習問題1(SDLを用いたゲーム開発)

ゲームプログラミングC++

以下の本でSDLOpenGLを用いたC/C++ゲーム開発の勉強を進めています。


ゲームプログラミングC++

各章には練習問題があるので、その問題の私なりの解答コードと詰まった箇所をここに残しておきます。


環境構築編はこちら
kurora-shumpei.hatenablog.com

練習問題の内容

第1章ではポンゲームの開発をしていきます。本では、画面の左にパドルが、上・右・下に壁がある状態で、ボールを壁打ちするゲームの開発をして終了です、

練習問題では、それを

  1. 2プレイヤー同士の対決
  2. ボールを二つに増やす

という風に拡張していきます。

練習問題の解答

解答のコードは以下のGithubリポジトリのChapter1に置いています。Star押してくれたら土下座します。
github.com

f:id:kurora-shumpei:20190718002842p:plain
ポンゲーム
ただ、解答のコードはC/C++初心者の私が作成したもので、これが正解だ!というわけではありませんし、他にもっと簡単かつ上手い実装方法があるということを念頭に置いた上で上記の解答コードを参考にしてくれたらありがたいです。




個人的に詰まった箇所

「アロー演算子」と「ドット演算子

先ほど言ったようにC/C++初心者ですので、すごい初歩的な箇所で詰まりました。

それは、「アロー演算子」と「ドット演算子」の違いです。初心者といってますが、一応2年前に大学の演習で結構やってはいたんですが、完全に忘れていました。

以下のサイトにわかりやすく説明してあったので、ありがたく参考にさせていただきました。
www.ss.cs.meiji.ac.jp

ずっとアロー演算子を使ってエラーが起きて、「おかしいなあ」と唸っていました。アホです。

vectorイテレータ

練習問題の2番目を実装するために、vectorの構造体を用いて二つのボールの更新をすると良いよと本に書いてあったのでその通りに実装しました。

そして、どうせならイテレータを使って更新しようかなと思って色々試しましたができなかったので、結局インデックスをfor文でループして指定するシンプルなやり方で実装しました。

この辺りはまたイテレータの仕様を確認してみようかなと思います。

最後に

今回はChapter1の練習問題を扱いました。

思っていたよりもC/C++を忘れていた&わからなかったので、この本を進めながらC/C++の勉強も進めていこうかと思います。

練習問題2の記事
kurora-shumpei.hatenablog.com


ゲームプログラミングC++