Cocos2d-xを使ってゲームをつくりたい。

この記事はSLP-KBIT Advent Calendar 2016の4日目の記事になります。

 

突発的な思いつきだけで書いた記事です。

乱雑な文についてはあまり突っ込まないようにお願いします。

初めに

"Cocos2d-x"というフレームワークを使ってゲームを制作してみようと言う話です。
情報環境実験でJavaでのゲーム製作をしましたが、
個人的にJavaでのコーディングが好きになれなかったので、
別の方法を探していたときに見つけたフレームワークになります。
実際に作ろうとしていたゲームがよくわからないバグで動かなくなっているので、
そのことについてはまたえ別の機会に書きたいと思います。
なので、今回は紹介のみになります。すんません。

Cocos2dについて

名前に2dとあるように2D、つまり平面のゲームを作るためのフレームワークです。
平たく言えば、"Unity"の2Dゲーム版みたいなものです。
開発はオープンソースで行われています。
このフレームワーク自体はpythonで動いているのですが、
その他の言語に対応した派生フレームワークが多数存在します。
今回は、その中でもC++に対応した"Cocos2d-x"を用いて
ゲームを作ってみようと言う話です。
Cocos2d-xは、企業での利用もされていて、
最近だと、このようなゲームに使われています。
f:id:zyaguti8:20161204060236j:plain
では、今回は、Hello Worldの表示までについて書きます。
Hello World出すだけなら何も書かなくていいけど

Cocos2d-xのインストール

Cocos2d-xのインストールはとても簡単です。
公式サイトからダウンロードしてきたzipファイルを
展開して好みのフォルダに入れるだけです。
ここで気をつけなければならない点は、日本語対応していないので、
フォルダのパスに全角文字が入っていない様にする必要があることです。
大体はCドライブの直下においている人が多いのではないかと思いますね。
自分もそうです。
展開が終わったら、"setup.py"を実行してセットアップをします。
セットアップの途中でAndroidでのビルドに必要な情報の入力を求められます。
特に入力もする必要がなければそのままEnterキーでスキップしてください。
Androidでビルドすることがなければ何も入力しなくていいです。

環境変数の設定

プロジェクトを作るためにcocosコマンドを使う必要があります。このコマンドの実行ファイルはさっき展開したフォルダの中にあるので、
コマンドプロンプト上で使用するために環境変数を設定しましょう。
(自分の使っている環境はWindowsなので、そちらの説明をします。)

設定から環境変数の設定画面を開きます。
自分は、いつも"Win+i"で設定を開いて環境変数と検索して開いています。
f:id:zyaguti8:20161204060132j:plain
毎回毎回検索するのは不便だなとは思います。
というのも、Windows10にアップデートしてから
環境変数の設定にどの様に辿ったら行けるかわからなくなりました。
勝手に調べろよって話ですね、すみません。

環境変数の設定画面で、ユーザー環境変数の項目の中から、
"path"を選択して編集をしましょう。

f:id:zyaguti8:20161204060146j:plain


編集画面が出たら、その中から新規を選択し、先程Cocos2d-xを展開したフォルダのパスを入力します。

f:id:zyaguti8:20161204060204j:plain


環境変数の設定が出来たらあとはプロジェクトを作成して、起動するだけです。
わざわざ環境変数の設定方法を説明する必要はなかったんじゃないかと思われそうですね。
ただ単にWindows10になってから環境変数を設定する画面が見やすくなっていることを知ってもらいたかったってだけです。
今までの設定画面では、間違って他のパスを消してしまっていろいろと動かなくなった人はいるはずです。 いや、いてください。

いますよね....?
自分だけですか、アッハイ。

プロジェクトの作成

環境変数の登録もできて、コマンドが使えるようになったので、
プロジェクトの作成をしましょう。
コマンドプロンプト上でプロジェクトを作成するフォルダへ移動し、
"cocos new"コマンドを叩きます。
例としてはこんな感じです。

cocos new AAAA -p BBBB -l cpp -d ./

cocos newで、新しいプロジェクトを作ります。 
AAAA にはプロジェクトの名前が入ります。-p で、パッケージの指定をします。
-l は、どの言語を使用するかです。
-d は、プロジェクトのルートディレクトリの位置の指定です。
新しいプロジェクトを作るときには、
大まかに以上のことを指定しておけば問題ないと思います。
f:id:zyaguti8:20161204062550j:plain
コマンドを叩くと、プロジェクトの作成が始まります。少し時間がかかります。
 
プロジェクトの作成が出来たら、
各種環境に合わせたフォルダが複数出来上がっているので、
自分の使用している環境に合わせたフォルダの中にある
プロジェクトファイルを開きましょう。

f:id:zyaguti8:20161204062844j:plain

自分の場合、Visual Studioを使っているので、
"proj.win32"の中にあるプロジェクトファイルを開きます。

 

開いたら、ファイルの中身は何も変えずにビルドしてみましょう。

このような画面が出てくると思います。これがCocos2d-xの”Hello World”です。

f:id:zyaguti8:20161204063248j:plain

 

ゲームを作るには、これを基準にして、これにいろんなオブジェクトを追加したり、

イベントを追加したりしていけば作ることが出来ます。

 

 

最後に

アドベントカレンダーの記事を書こうとしていたには、していたのだけど、
空きがあるのが4日しかないということを知ったのが2日というのがきつかった。
丁度やっていることを軽く説明できる程度にはわかっていたので、
導入部分だけの説明にはなったけどまとめ(?)てみました。
ここに書いてある内容に関しては、他のブログでまとめている方が多くいる上に
自分より何倍もまとまっているので、
そちらのほうが絶対に参考になるだろうなって考えしかしていません。
とりあえず、誰かが見ているかどうかはわからないけど、
ここで興味持ってもらって今後の活動で使ってみようって人がいればいいなって
ぐらいの気持ちで書きました。
何故かファイルのインクルードが上手くいかないバグが起こって
プロジェクトを最初からやり直す羽目になってはいますが、
なんとか形になればその時はまたどこかのタイミングで発表できたらなって思います。
それでは。。。
 
あ、だれかポケモンの相手してください。

自らのソースコードを振り返る

これはSLP KBIT Advent Calendar 2014の11日目です。

 

※個人的な内容になってしまってます。

 

初めに

その場のノリと勢いに流され、先輩からの

f:id:zyaguti8:20141210095353j:plain

という圧力()に屈した結果、このページを書いている。

いい機会だし、頑張ろうと思う。

 

今日までのアドベントカレンダーを見る限り、今の自分の知識で

こんな記事書けるわけ無いじゃないかと思った。

 

1年を振り返ろうとか言っていたが、今までの自分のCのソースを見ていこうと思う。

(ある意味この一年間その程度の事しか出来ていない)

大学の情報系に来るまでほとんどPCを触った経験がなかったので大目に見てもらいたいです…

 

 

1年のソースを振り返る

前置きが若干長くなったことと愚痴っぽくなったことは基本的にいつものことです、はい。

 

春先に初めて書いたCのファイルが残ってないかとディレクトリを漁った結果、

今年の4月に作ったフォルダからこんなものが出てきた。

 f:id:zyaguti8:20141210094715j:plain      f:id:zyaguti8:20141210094703j:plain

誰もが通る道だと思います。

 

多分初めて書いたときのソースでしょう。

最初の方だし、特に何も言うことがないだろうと思ってたのに

さっそく突っ込みどころがありました。

なぜ出力が"Thanks"なのかと、"Hello, World"ではないのかと。

 

あと、タブ文字が空白で挿入されないというのは結構辛いと思った。

この量のソースだと、まだタブ幅が4文字の方が見やすい気がする。

 

次の月のものだと、

f:id:zyaguti8:20141210100115j:plain

演算子の練習でしょう、多分。

タブ文字が空白になってる当たり、進歩したんでしょうか。

 

各月ごとに見ていこうと思ったけど、コレは長くなりそうなので

問題の有りそうなソースを上げていくことにする。

 

f:id:zyaguti8:20141210101131j:plain

ひどい。

とにかく、ひどい。

ソースの量が少ないので何がしたいのかわかるが、何だ”整数c”って

入力したまま使ってないじゃないかと。

宣言するのも無駄な気がする。何だよ、このksコード。

 

次、

f:id:zyaguti8:20141210101835j:plain

やけに長いコードが出てきたが、最早何をしているのかがわからない。

すごく無駄な計算をしている気がするが、どこを直していいのかがわからない。

コレを修正するぐらいなら、もう一度問題を見て初めから書いた方が早い気がする。

 

この長さのソースで修正するのがだるいと思ってしまうのだから、

システム開発の修正を後からするのは相当なものだと思う。

 

 

終わりに

自分のソースを見直すいい機会になった。

ソースを探している時、後半のソースはほとんど何やっているかがわからなくなっていたので、

仕様説明などは書くようにしておきたいと思った。

書いた本人ですらわからないコードはksコード以前の問題だと思う。

  

 

もし、来年もこの企画があるようなら、

技術的な記事が書けるようになっていたいとは思った。

 

今後はサーバについての知識を付けていきたい。

明日のアドベントカレンダーの担当なわけだが

今更ブログの開設してみた

 

"予定は未定"としていたが、今の知識量で語れるようなこともないので

(誰も期待してないと思うが)

この1年を振り返ろうかと思う。

 

最悪自分のゴミのようなCのソースを見て自分で叩くようなこともしようか…