サウンドノベル型のゲームのタイトル画面

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
シャドウ

サウンドノベル型のゲームのタイトル画面

#1

投稿記事 by シャドウ » 1週間前

ゲームのタイトル画面を作りたいのですが、初心者なので何をどう作ればいいのか解りません。
C言語の方は、一通り勉強したので、ゲームを作ることでより理解を深めたいと思っています。
タイトル画面の方、詳しい作り方をどうかご教示お願いします。

アバター
Dixq (管理人)
管理人
記事: 1645
登録日時: 7年前
住所: 北海道札幌市
連絡を取る:

Re: サウンドノベル型のゲームのタイトル画面

#2

投稿記事 by Dixq (管理人) » 1週間前

具体的に何が知りたいのか教えてください。
DXライブラリであればこちらに説明が書いてあるので一読ください。
https://dixq.net/g/

タイトル画面を作りたいといっても、他の画面と共存させたり、処理を分けられるように設計する方法が知りたいのか、
単にタイトル画面に画像や文字を描画する方法が分からないのかなどで回答が変わってくると思います。
また、「サウンドノベル型」というものがどのようなイメージなのかも教えてください。

シャドウ

Re: サウンドノベル型のゲームのタイトル画面

#3

投稿記事 by シャドウ » 1週間前

回答ありがとうございます。
>単にタイトル画面に画像や文字を描画する方法が分からない
その通りです。
タイトル画面の上に新たに画像を表示させたいのですが、表示できません。

初心者ゲームプログラマ

Re: サウンドノベル型のゲームのタイトル画面

#4

投稿記事 by 初心者ゲームプログラマ » 1週間前

DXライブラリの設定がどうなっているかは知りませんが、
たいていは描画順番の問題かと思われます。

もしくは、リソース(画像)がちゃんと読み込まれているかですね。

コードをここに張り付けてみるといいかもしれません。

シャドウ

Re: サウンドノベル型のゲームのタイトル画面

#5

投稿記事 by シャドウ » 1週間前

返信ありがとうございます。
間違いなく記述の方勘違いしていると思いますが(私が)
試行錯誤した結果の、今現在のソースコードの記述です。

コード:

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
	ChangeWindowMode(TRUE); // ウィンドウモードに設定
	DxLib_Init();   // DXライブラリ初期化処理
	
	SetDrawScreen(DX_SCREEN_BACK);
	SetDrawScreen(DX_SCREEN_FRONT);

		
		int Handle3;     // データハンドル格納用変数
		Handle3 = LoadGraph("画像/game_back.png"); // 画像をロード
		DrawGraph(0, 0, Handle3, TRUE); // データハンドルを使って画像を描画
	
		int Handle;     // データハンドル格納用変数
		Handle = LoadGraph("画像/cool.png"); // 画像をロード
		DrawGraph(0, 0, Handle, TRUE); // データハンドルを使って画像を描画
	

	int Handle2, Count = 0;
	Handle2 = LoadSoundMem("サウンド/bgm_gisau.wav"); // サウンド/1up.wavをロードし、識別番号をHandleに格納

										   // while(裏画面を表画面に反映, メッセージ処理, 画面クリア)
	while (ScreenFlip() == 0 && ProcessMessage() == 0) {

		if (Count % 3000 == 0) { // 2秒に一度
			PlaySoundMem(Handle2, DX_PLAYTYPE_LOOP); // 効果音を再生する
		}

		Count++;


	}

		WaitKey();      // キー入力待ち
		DxLib_End();    // DXライブラリ終了処理
	}
	

一応これで、背景画像と音楽は出来ているのですが、
画像の上に画像を載せる方法が解りません。
よろしければご教示お願いします。

初心者ゲームプログラマ

Re: サウンドノベル型のゲームのタイトル画面

#6

投稿記事 by 初心者ゲームプログラマ » 1週間前

描画順番を逆にしたりはしましたでしょうか?

それと

コード:

SetDrawScreen(DX_SCREEN_BACK);
SetDrawScreen(DX_SCREEN_FRONT);
こちらについてなのですが、デフォルトではDX_SCREEN_FRONTが設定されているとのことらしいので、
関数で設定する必要ないかと思われます。

DXLibを使用したことがないので、自分も今調べています!

初心者ゲームプログラマ

Re: サウンドノベル型のゲームのタイトル画面

#7

投稿記事 by 初心者ゲームプログラマ » 1週間前

LoadGraphとDrawGraphの戻り値をチェックしてみることをおすすめします!
-1だと失敗らしいので、何かしら失敗していないかチェックするといいかもです。

アバター
Dixq (管理人)
管理人
記事: 1645
登録日時: 7年前
住所: 北海道札幌市
連絡を取る:

Re: サウンドノベル型のゲームのタイトル画面

#8

投稿記事 by Dixq (管理人) » 1週間前

既にご覧いただいているようですが、DXライブラリの使い方はこちらで紹介しています。
https://dixq.net/g/

書かれているプログラムには描画したものを消す処理がかかれていませんので、
常に上書き描画しかできない状態です。

1.9章がDXライブラリを使う上での最小限のコードですので、そちらを参考にしてください。

シャドウ

Re: サウンドノベル型のゲームのタイトル画面

#9

投稿記事 by シャドウ » 1週間前

サウンドノベル型は、かまいたちの夜って言うゲームがあるんですが、タイトル画面をそんな感じに作りたいのです。
まず背景があって、その上に赤い文字でかまいたちの夜って書いてある感じで。

シャドウ

Re: サウンドノベル型のゲームのタイトル画面

#10

投稿記事 by シャドウ » 1週間前

管理人様もゲームプログラマーさんも助言と説明ありがとうございます。
戻り値も見ましたが、やっぱり一通り見ましたが、できませんでした。

シャドウ

Re: サウンドノベル型のゲームのタイトル画面

#11

投稿記事 by シャドウ » 1週間前

こんばんは。お世話になっております。
画像ファイルを、透過したら一応表示されるようになったのですが、
何か看板見たくなってしまい、文字だけ表示させることが出来ないです。
タイトルの文字の後ろの黒い部分もファジー選択で消せると思ったのですが、消せずじまいで・・。

シャドウ

Re: サウンドノベル型のゲームのタイトル画面

#12

投稿記事 by シャドウ » 1週間前

こんばんは。お世話になっております。
画像ファイルを、透過したら一応表示されるようになったのですが、
何か看板見たくなってしまい、文字だけ表示させることが出来ないです。
タイトルの文字の後ろの黒い部分もファジー選択で消せると思ったのですが、消せずじまいで・・。

アバター
Dixq (管理人)
管理人
記事: 1645
登録日時: 7年前
住所: 北海道札幌市
連絡を取る:

Re: サウンドノベル型のゲームのタイトル画面

#13

投稿記事 by Dixq (管理人) » 1週間前

ソースコードはどのようになったのでしょうか?

シャドウ

Re: サウンドノベル型のゲームのタイトル画面

#14

投稿記事 by シャドウ » 6日前

コード:

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
	ChangeWindowMode(TRUE);               // ウィンドウモードに変更
	if (DxLib_Init() == -1) return -1;     // DXライブラリ初期化処理

	int image, image2, image3;                       //ハンドルを受け取るためのint型変数を宣言
	image = LoadGraph("画像/game_back.png");       //back.bmpのハンドルを代入
	image2 = LoadGraph("画像/game_logo.png");       //char.pngのハンドルを代入
	
	DrawGraph(0, 0, image, FALSE);    //back.bmpを表示
	DrawGraph(150, 10, image2, FALSE);    //char.pngを表示
	DrawGraph(150, 100, image3, FALSE);
	WaitKey();                               //何かキー入力があるまで待つ
	DxLib_End();                            //DXライブラリの終了処理
	return 0;
}
こんばんは、今の所こんな感じになっています。
シナリオの方が、選択分岐などの問題で残念なことになっているのでもうちょっとネタを練ってから
ゲームを作ろうと思います。

アバター
Dixq (管理人)
管理人
記事: 1645
登録日時: 7年前
住所: 北海道札幌市
連絡を取る:

Re: サウンドノベル型のゲームのタイトル画面

#15

投稿記事 by Dixq (管理人) » 5日前

DrawGraphで透過を使う場合は最後の引数をTRUEにしてください。

ただ、テストコードならいいですが、ゲームプログラムとして作る場合は
上でもお話しした通り、1.9章のソースコードはDXライブラリを使う上で必要な最小限のコードなので、
https://dixq.net/g/01_09.html
このコードが無いと、ゲームプログラムとして機能しません。

まずはメインループを作り、ループに入る前に初期化処理、ロード処理などをし、
メインループ内で毎フレーム削除、描画を繰り返すコードにしてみてください。

返信

“C言語何でも質問掲示板” へ戻る