読者です 読者をやめる 読者になる 読者になる

ここまでの冒険を記録しますか?

長岡技大ソフトウェア開発サークルの開発ブログ

DXライブラリとWindowsAPIの連携その2【メニューバー】

書き手:肥田野

昨日に引き続き、DXライブラリとWindowsAPIの関数を組み合わせる方法について解説していきます。

今回はメニューバーです。Wordやペイントなどの上に表示されている「ファイル(F)」「編集(E)」といったアレですね。

メニューバーはリソースと呼ばれるデータとして扱われます。リソースには他にダイアログボックスやツールバー、ステータスバーなどが含まれます。

Windowsのアプリに共通して使われる「部品」のことをリソースとして考えてもいいかもしれません(勿論例外はありますが)

リソースの編集方法は大きく分けて2種類あります。

一つはVisualStudioなどの開発環境が提供するリソースエディタで編集する。

もう一つはリソーススクリプトをメモ帳などのテキストエディタで直に編集する。

最終的に出来上がるものは同じなので好みの方で構いませんが、私と同じ趣味趣向の方は、テキストで直接編集したがるかもしれませんね(笑)。分かる、分かるぞその気持ち。だってカッコイイじゃん。

しかし現実は完成形がイメージしづらく、書き間違いも頻繁に発生するため、初めてリソースを扱う人には前者の方法を強くおすすめします。

リソースファイルをメモ帳などで開くと分かりますが、実は結構単純な構造をしているので、微修正くらいならテキストで直接弄った方が楽かもしれません。ただし、VisualStudioなどのお節介な手厚くサポートしてくれる開発環境では、直接ファイルを編集するとエラーが出て読み込み直す必要が出てくるので注意が必要です。

それでは具体的なリソースの編集方法から見ていきましょう。

続きを読む

DXライブラリとWindowsAPIの連携その1【準備】

書き手:肥田野

新年入ってから最初の更新ですね。明けましておめでとうございます。

波乱のデジゲー博を終えた後は、学期末ということでメンバー一同テストやレポートに邁進しておりました。

特に2年生は進級の可否がかかっていたことで、私を含む一部のメンバーなどはつい最近まで戦々恐々とした日々を過ごしていた次第となります。

そんな3学期は普段利用させていただいている部室が設備の入れ替えで出入りできなくなったため、各自実家やアパートなどで個人の開発を行っています。

そこで私はタイトルにもありますとおり、DXライブラリから少しはみ出てWindowsAPIを勉強し始めたので、そこで得た知識とDXライブラリを組み合わせることで、よりソフトウェアとして機能的にする試みを行ってみました。

(2/25追記:コードを一部修正しました。SettingAfterInit関数内で宣言していたhMainWnd変数をグローバル変数にしています)

続きを読む

【お知らせ】デジゲー博当選しました

書き手:肥田野

更新が滞ってしまい申し訳ないです。

技大祭が近づいてきておりそちらの作品作りに注力していたので、RPGの方はしばらくお休みにさせていただいています。

その技大祭のメニューも近日中に記事にしますが、今回はその前に大事なお知らせを。

タイトルにある通り、デジゲー博2015に当選しました!

スペースはA-06ab、2スペースのフリープランになります。

今回初参加ですが、サークル一覧を開くとかなり上の方ですね~、緊張します。

創作物の発表の場としては勿論、同人ゲーム界で著名なクリエイターさんが多く集まりますので、より高度な知恵や技術を学べる場にもなると思います。最大限活用しましょう。

また今回参加される先輩方におかれましては、至らない点もあるかと思いますが、今できる最大限の努力で少しでも良い作品を発表したいと思いますので、どうかよろしくお願いいたします。

さて気になる創作物ですが、現在OculusRiftを使ってとあるゲームを開発しています。

テーマはズバリ、「鉄骨渡り」です。

あれですね。ざわざわしてるやつ。電流が流れたり「押せっ・・・!」という声が聞こえたり聞こえなかったりするあれです。

こちら現在開発中なのですが、ちょっとハード面でいろいろ不満やトラブルが発生しているので、サークルカットには書いたものの急遽変更になる可能性が拭いきれないんですよ……

なおTwitterに投降したミクさんは技大祭向けに作ってますが、場合によってはこちらをデジゲー博に持っていくことになるかも……?

優柔不断で申し訳ないのですが、何分OculusRift及びUnityにおいて圧倒的に経験値不足なので、今できることを最大限やることを第一としております。

そんなわけでデジゲー博のお知らせでした。詳細についてはまた技大祭後に記事にしたいと思います。

【ゲーム製作入門】C/C++で簡単なRPGを作る⑬【DXライブラリ】

書き手:肥田野

DXライブラリでRPGのベースになるマップ画面やデータ管理などのあれこれの制作に挑戦してみます。

RPGとして完成する保証はありませんが、途中経過だけでも参考になれば幸いです。

この連載は前回までの内容を理解していることを前提に進めていきます。

今回はパーティメンバーの追加方法について解説します。

これまではプレイヤーが一人しかいませんでしたが、一般的なRPGでは複数人でパーティを組むことが多いですよね。

そして、マップ上でもパーティメンバーが後に着いてくることが多いと思います。

またパーティの概念がないゲームでも、チュートリアルなどで誰かの後についてトコトコ歩いていく場面は想像しやすいでしょう。今回は、そんな処理を実装してみます。

続きを読む

【ゲーム製作入門】C/C++で簡単なRPGを作る⑫【DXライブラリ】

書き手:肥田野

DXライブラリでRPGのベースになるマップ画面やデータ管理などのあれこれの制作に挑戦してみます。

RPGとして完成する保証はありませんが、途中経過だけでも参考になれば幸いです。

この連載は前回までの内容を理解していることを前提に進めていきます。

第11回は前中後の三部に加えて、不具合修正の11.5回で構成されています。特に11.5回を飛ばしていないかよく確認してから、今回の記事に進んでくださいね。

さて今回は、いよいよ村人を実装します。

⑪‐後でPlayerクラスをCharaクラスの派生クラスと位置づけたので、新たにつくるMurabitoクラスもCharaクラスから派生させます。

つまりPlayerクラスとMurabitoクラスは、画像の読み込み(Charaクラスコンストラクタ)や歩かせる処理(Chara::Move())でCharaクラスの関数を共有していて、イベントを調べる処理(Player::Action())や話しかけられた時の処理(Murabito::Reset()※これから作ります)は別々に保有していることになります。

このように、一部だけ違う処理であとは共通の処理をさせたい時は、クラスの継承を使うことでコードを短縮することができるんです。

なお、のちのちパーティメンバー(プレイヤーの後ろに着いてくる人たち)を作りたいと思った時にも、このCharaクラスが便利に使えそうですね。

続きを読む

【ゲーム製作入門】C/C++で簡単なRPGを作る11.5【DXライブラリ】

書き手:肥田野

DXライブラリでRPGのベースになるマップ画面やデータ管理などのあれこれの制作に挑戦してみます。

RPGとして完成する保証はありませんが、途中経過だけでも参考になれば幸いです。

この連載は前回までの内容を理解していることを前提に進めていきます。

何故、更新が遅れたのか。そして何故、第11回はいつまでたっても終わらないのか。

全ての謎は、⑪(前)でプロジェクトの構成を一新したときに、致命的な不具合が発生していたことに起因します。

こちらが該当箇所になります。

続きを読む

【ゲーム製作入門】C/C++で簡単なRPGを作る⑪(後)【DXライブラリ】

書き手:肥田野

DXライブラリでRPGのベースになるマップ画面やデータ管理などのあれこれの制作に挑戦してみます。

RPGとして完成する保証はありませんが、途中経過だけでも参考になれば幸いです。

この連載は前回までの内容を理解していることを前提に進めていきます。

イベントの実装までにかなりの時間を要してしまいましたが、今回でいよいよプレイヤーキャラが任意でイベントを起動できるようになります。

さっそくPlayerクラスにイベント起動用の関数を実装したいのですが、その前にRPGによく使われるイベントについて考えてみましょう。

今回のようなメッセージは基本中の基本ですが、他にも大事な要素がありますね。「村人」です。

誰もいない世界を冒険するのは寂しいですし(そういうゲームもありますが)、ゲームを進めるうえでの情報源も立札だけでは無機的で面白くありませんね。

今回は村人の実装は行いませんが、その準備だけはしておきましょう。

具体的には、「Playerクラス」を「Charaクラス→Playerクラス」の親子構造にするのです。

キャラクターの動きはCharaクラスで定義して、今回のイベントを起動させる等プレイヤーキャラにしか使わない要素はPlayerクラスにまとめます。

そうすれば、あとでCharaクラスからMurabitoクラスを派生させられますね。

というわけでPlayer.hから見ていきましょう。

続きを読む