<至急> 音ゲーのグラフィックについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
izayoi_18
記事: 5
登録日時: 10年前
住所: 長野

<至急> 音ゲーのグラフィックについて

#1

投稿記事 by izayoi_18 » 10年前

note_1という画像を動かしているのですが、ClearDrawScreenを除いても連続して表示されません。なぜでしょうか。

main.cpp

コード:

#include "DxLib.h"
#include "Player.h" //Playerモジュールの関数を使えるようにする

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){
	ChangeWindowMode(TRUE), DxLib_Init(),SetGraphMode(1500, 950, 32);
	SetDrawScreen(DX_SCREEN_BACK);

	PICTURE_LOAD();
	BACK_LOAD();
	NOTE_1_LOAD();
	SOUND_LOAD();
	MAIN_MUSIC_LOAD();
	HIT_DRAW_LOAD();

	MAIN_MUSIC();


	while (ScreenFlip() == 0 && ProcessMessage() == 0){

		SPEED();
		PICTURE_DRAW();//描画
		BACK_DRAW();
		NOTE_1_DRAW();
		HIT_JUDGE();

		SOUND_1();
	}


	DxLib_End();
	return 0;
}
Player.cpp

コード:

#include "DxLib.h"
#include "Player.h"

// このファイル内でしか使えないグローバル変数

static int a;
static int picture;
static int back;
static int note_1;
static int sound_1;
static int s_flag = 0;
static int music;
static int hita,hitb,hitc;

void PICTURE_LOAD()
{
	picture = LoadGraph("Data/Picture_1.png");
}

void PICTURE_DRAW()
{
	DrawGraph(0, 0, picture, FALSE);
}

void BACK_LOAD()
{
	back = LoadGraph("Data/Back.png");
}

void BACK_DRAW()
{
	DrawGraph(0, 0,back,TRUE);
}

void NOTE_1_LOAD()
{
	note_1 = LoadGraph("Data/Note_1.png");
	a = 0 ;
}

void NOTE_1_DRAW()
{
	DrawGraph(133, a, note_1, TRUE);
}

void SPEED()
{
	a = a + 5;
}

void SOUND_LOAD()
{
	sound_1 = LoadSoundMem("data/s1.ogg");
}

void SOUND_1()
{
	if (CheckHitKey(KEY_INPUT_A)==1) {
		if (s_flag == 0)
		PlaySoundMem(sound_1, DX_PLAYTYPE_BACK);
		s_flag = 1;
	}
	else {
		s_flag = 0;
	}
}

void MAIN_MUSIC_LOAD()
{
	music = LoadSoundMem("data/music.mp3");
}

void MAIN_MUSIC()
{
	PlaySoundMem(music, DX_PLAYTYPE_BACK);
}

void HIT_DRAW_LOAD()
{
	hita = LoadGraph("Data/hitA.png");
	hitb = LoadGraph("Data/hitB.png");
	hitc = LoadGraph("Data/hitC.png");
}

void HIT_DRAW()
{
	DrawGraph(155, 650, hita, TRUE);
}

void HIT_JUDGE()
{
	if (a > 745 && a < 765){ if (CheckHitKey(KEY_INPUT_A) == 1){ HIT_DRAW(); } }
}
Player.h

コード:

#ifndef DEF_PLAYER_H //二重include防止

#define DEF_PLAYER_H

void PICTURE_LOAD();

void PICTURE_DRAW();

void BACK_LOAD();

void BACK_DRAW();

void NOTE_1_LOAD();

void NOTE_1_DRAW();

void SPEED();

void SOUND_LOAD();

void SOUND_1();

void MAIN_MUSIC_LOAD();

void MAIN_MUSIC();

void HIT_DRAW_LOAD();

void HIT_DRAW();

void HIT_JUDGE();

void DELETE_GRAPH();


#endif

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: <至急> 音ゲーのグラフィックについて

#2

投稿記事 by みけCAT » 10年前

ソースコードを貼るときは、BBCodeを有効にした(無効にしない)状態でcodeタグで囲んでいただけると、見やすくてありがたいです。
修正ありがとうございます。
izayoi_18 さんが書きました:note_1という画像を動かしているのですが、ClearDrawScreenを除いても連続して表示されません。なぜでしょうか。
「連続して表示されない」とはどういうことでしょうか?
backやpictureの描画によって上書きされるので軌跡が残らない、ということでしょうか?
添付ファイル
Data.zip
テスト用仮素材
(112.53 KiB) ダウンロード数: 106 回
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

izayoi_18
記事: 5
登録日時: 10年前
住所: 長野

Re: <至急> 音ゲーのグラフィックについて

#3

投稿記事 by izayoi_18 » 10年前

なるほど!picture,backがループに入っているため上書きされるのですね。ループから出したら思っていたような連続したnoteになりました。
ありがとうございます!

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: <至急> 音ゲーのグラフィックについて

#4

投稿記事 by みけCAT » 10年前

もし解決したのでしたら、解決チェックをお願いします。
解決チェックをするには、投稿画面の「返信」ボタンの右にある「解決!」にチェックを入れた状態で返信を投稿してください。
オフトピック
ScreenFlipしてClearDrawScreenしない時点で設計が怪しい気がするが…まーいっか。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

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