ページ 1 / 1
【DXライブラリ】アクションゲームにメモ機能を実装したい
Posted: 2013年9月05日(木) 00:05
by 鯨太郎
こんにちは、いつもC言語なんでも質問掲示板を閲覧させてもらっています。
皆様の知恵を拝借したい事があってトピックを投稿させていただきました。
題名のとおりアクションゲームにメモ機能を実装しようとしています。
2D「ゼルダ」の様なマップが全方向スクロールするゲームで
マウスでマップのうえにメモを書けるような処理をしたいと考えています。
最初にMakeScreenを使って描画先にメモできるものを考えたのですが
MakeScreenでは任意にスクロールする画面にマッチするものが作れませんでした。
他に白いピクセルのオブジェクトを大量に用意してメモに見せるというものも考えましたが
いまいち現実的ではないように思えます。
どうにかして期待するような結果のでるものができませんでしょうか?
ちなみに出来るかぎり3Dは未使用での実装が望ましいです。
よろしければご指導お願いします。
Re: 【DXライブラリ】アクションゲームにメモ機能を実装したい
Posted: 2013年9月05日(木) 11:06
by usao
なんだろう?
キャラクターとかが動いているゲーム画面上に 唐突にマウスで何か線を引けて,
それがゲーム進行に伴う背景とかのスクロールに合わせて移動すればいい,という話なのでしょうか?
そういう話だとしたら,マウスでの描画の開始~終了までのマウス軌跡点群を
包括する矩形サイズの画像(BMPなのか何なのかわかりませんけど)的なオブジェクトを作成して,
あとは背景と同量だけ(STGとかでいうところの"地上物"みたいな感じで)移動させるようにすればいいのではないでしょうか.
Re: 【DXライブラリ】アクションゲームにメモ機能を実装したい
Posted: 2013年9月05日(木) 18:13
by nil
MakeScreenでもいけるような気がします。
※以下は想像で書いているので、実際に動作をするかはわかりません。
MakeScreenでマップと同じ大きさのスクリーンを作る。
マウスのスクリーン座標をマップ内での絶対座標に変換する。
↑の座標を使い、スクリーンに描画をする。
スクリーンを描画する。
[追記]
以下のコードで試した見たところ、
要望のものは実装できたように思えます。
► スポイラーを表示
コード:
#include <DxLib.h>
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
ChangeWindowMode(true);
if(DxLib_Init() == -1) { return 0; }
SetDrawScreen(DX_SCREEN_BACK);
int mapHandle = LoadGraph(_T("test.png"));
int screenHandle = MakeScreen(640*2, 480*2, true); // マップの大きさは仮に1280*960とする
int red = GetColor(255, 0, 0);
int x = 0;
int y = 0;
while(ProcessMessage() == 0) {
ClearDrawScreen();
clsDx();
char key[256];
GetHitKeyStateAll(key);
// マップスクロール
if(key[KEY_INPUT_LEFT] ) { x -= 5; }
if(key[KEY_INPUT_RIGHT] ) { x += 5; }
if(key[KEY_INPUT_UP] ) { y -= 5; }
if(key[KEY_INPUT_DOWN] ) { y += 5; }
// スクリーンに書き込み
if(GetMouseInput() & MOUSE_INPUT_LEFT) {
int mx, my;
GetMousePoint(&mx, &my);
SetDrawScreen(screenHandle);
DrawCircle(mx-x, my-y, 3, red);
SetDrawScreen(DX_SCREEN_BACK);
}
// マップ描画
DrawGraph(x, y, mapHandle, true);
// スクリーン描画
DrawGraph(x, y, screenHandle, true);
printfDx(_T("x:%d y:%d\n"), x, y);
ScreenFlip();
}
DxLib_End();
return 0;
}
Re: 【DXライブラリ】アクションゲームにメモ機能を実装したい
Posted: 2013年9月05日(木) 20:02
by softya(ソフト屋)
どちらかと言うと描いた大量の画像データを管理するのが問題になりそうな気がします。
Re: 【DXライブラリ】アクションゲームにメモ機能を実装したい
Posted: 2013年9月10日(火) 22:54
by 鯨太郎
多忙なため返信遅くなってしまいました、
皆様のおかげでひとまず自分が理想としていたものに
することができました、ありがとうございます!
>>涼雅さま
自分が使っていたDXライブラリのバージョンが古かったせいで
MakeScreenでの方法を消去していました。
ありがとうございます。