プログラマーの卵の日記

備忘録になってます!小難しそうなことから超簡単なことまでやってます!!

ゲームから学ぶ - クライミング先ハイライト

 

※難易度によっては見えなくなる。

 

ライミングするための位置がフォーカスしないと表示されない。

難易度によっては表示されないのでそれを考慮した設計かもしれないが、アサクリなどのように目立たなくなるので風景を見たい人にとってはいいかもしれないと思いました〇。

 

 

 

フォーカスについて

【ホライゾン2】フォーカスの機能と使い方 | ホライゾンフォビドゥンウェスト - 神ゲー攻略

 

 

 

youtu.be

DTMに関する書籍

読んだもの

いちばんわかりやすいDTMの教科書 改訂版 (MIDI、AUDIOデータダウンロード対応) 松前 公高 https://www.amazon.co.jp/dp/B010N4J9TK/ref=cm_sw_r_tw_dp_M0BASTYXKW9GBR02FYHK
 
 
 
こちらに関して簡単な全容
  • MIDIやオーディオなど基礎知識学習
  • DTMをするための必要機材に関して
  • Cubaseを用いた実際の作曲まで(ここでのオーディオインターフェースはUR22)
  •  ->ほぼこの内容、ボカロに関してもある
  • よくある質問に関して後半で解説
  •  ->「参考になる書籍は?」など(この本を進めていないあたり凄い)
 
 
何気なくkindleサウンドに関する本を読みたかったので読んでみました。
タイトル通りDTMを始めるにあたっての本としては良いと思います。
 
 
 

ゲームから学ぶ - 親切すぎるけどうざくないUI

・操作UIの近くに必ずボタンアイコンが置いてある

・攻撃が可能になったタイミングでボタンアイコンを表示している

Xboxコントローラーの場合、ABXYボタンのみ色を乗っけることでボタン位置の分かりやすさが上がっている

・邪魔にならない程度に下でボタン操作全部乗っけている(アトリエシリーズと同様)

 

 

 

どうでもいいけどさ、攻撃の時、真ん中のキャラがAボタンなら横はRT/LTじゃなくて、ワンボタンなRB/LBのほうがいいのでは…気にならなかったけど

youtu.be

ゲームから学ぶ - 文字の順番と表記の順番が異なる

どちらかというとあまり良くないという意味での学び

 

ここのSYSYTEMでは「各種設定/セーブ&ロード」と表示している。

だが、選択後では上から

・TUTORIAL(チュートリアル
・CONFIG(設定)
・DATALOAD(ロード)
・DATASAVE(セーブ)
・RETURN TO TITLE(タイトルへ戻る)

となっている。

 

直前の表示と順番が異なり、選択後少し困惑してしまう。

 

また、ほとんどのゲームではセーブの次にロードとなっているものが多いため、ロードの箇所をセーブだと勘違いする可能性もある

 

 

 

youtu.be

ゲームから学ぶ - 時間経過

昼から夜への時間経過をUIのみで演出している

 

通常時の左上の日付UIとは違い、日時などは重要ではないため半透過されており、昼/夜を見やすくしている

 

あとこの動きかわいい

 

 

youtu.be

【C++】簡単にサウンド「MMSystem.h」途中まで

図書館でサウンドプログラミングの本を読んでみたら[mmsystem.h]というのを使っていたのでそこから色々調べてみてまとめてみました。

 

 

 

参考

Windows C++で音声再生 - Qiita

waveファイルの再生(PlaySound) | WINAPI入門~bituse~

 

 

 

PlaySoundの参考コード(""は<>の代わり)

#include "iostream"
#include "Windows.h"
#include "mmsystem.h"

int main()
{
	if (!PlaySound(TEXT("戦慄.wav"), NULL, SND_SYNC))
	{
		std::cout << "再生できません\n";
	}

	system("pause");

	return 0;
}

 

 

 

環境設定

VSのプロパティにて以下を設定

・[C/C++]->[全般]->[追加のインクルードディレクトリ]->[C:\Program Files (x86)\Microsoft SDKs\Windows~\Include]を追加

・[リンカ]->[全般]->[追加のライブラリディレクトリ]->[C:\Program Files (x86)\Microsoft SDKs\Windows~\Lib]を追加

・[リンカ]->[入力]->[追加の依存ファイル]->[WinMM.Lib]を追加

 

 

 

PlaySound関数

第一引数は再生対象のサウンドファイルか、リソース名を指定する。
第二引数はインスタンスハンドルを指定する。第一引数にファイル名を指定した場合は、NULLを指定する。
第三引数は再生フラグを指定する。参考:waveファイルの再生(PlaySound) | WINAPI入門~bituse~

 

 

 

MCIコマンド

参考:MCIコマンドによる音声ファイル再生 | WINAPI入門~bituse~

waveファイルだけでなく、mp3ファイルや動画ファイルの再生なども扱うことができる。

詳細は参考先のサイトを見る。

 

 

 

MCIコマンドの参考コード

後日…覚えてたら……

 

 

【C++】コールバックというものを書いてみた

最近よく見かけるコールバックを簡単に書いてみた!

ここでは単純にUpdateにてループしているときにコールバック関数があれば実行を行い、中身を消しています。

 

<iostream>って書くとタグとみなされて消えるので""に囲ってます。

#include "iostream"
#include "functional"


class Func
{
private:
	typedef std::function<void()> FunctionCallBack;

public:
	Func() {}
	~Func() {}

	void SetFunction(FunctionCallBack func) { m_func_callback = func; }

	void Update(float delta)
	{
		if (m_func_callback)
		{
			m_func_callback();

			m_func_callback = NULL;
		}
	}

private:
	FunctionCallBack m_func_callback;
};

void Disp()
{
	std::cout << "aiueo\n";
}


int main()
{
	Func* m_func(new Func);

	m_func->SetFunction(Disp);

	int i = 0;
	while (i++ < 100)
	{
		m_func->Update(0.0f);
	}

	return 0;
}

実際に使う場合は、例えば画像を読み込みした後にコールバックとして画像の生成をして表示を行ったり、ローディングの完了後にコールバックとして次のシーケンスへ移動するための処理を呼ぶようにしたり、メールの送信処理が完了した後のコールバックとして送信されましたの表示をするなど…いい例が思いつきませんね……