ゲーム制作RTA(VS2017、DXライブラリ使用)

  1. VS2017を起動
  2. ファイル->新規作成->プロジェクト
  3. Windowsデスクトップウィザード、ソリューションのディレクトリは作成しない
  4. Windowsアプリケーション(.exe)、空のプロジェクト
  5. ソリューションエクスプローラーのソースファイルを右クリック->追加->新しい項目->c++ファイル
  6. プロジェクト->(プロジェクト名の)プロパティ(なんか出てこない時があるので、ソリューションエクスプローラー内でソリューションを選択してもう一度行ったり他の項目を選択したりする)
  7. すべての構成に変更->構成プロパティ->全般->文字セット、マルチバイト文字
  8. 構成プロパティ->c/c++->全般->追加のインクルードディレクトリ、プロジェクトに追加すべきファイル_VC用のパス
  9. 構成プロパティ->リンカー->全般->追加のライブラリディレクトリ、プロジェクトに追加すべきファイル_VC用のパス
  10. Releaseの変更
  11. 構成プロパティ->c/c++->ランタイムライブラリ->コード生成、/MT
  12. Debugに変更
  13. 構成プロパティ->c/c++->ランタイムライブラリ->コード生成、/MTd
  14. プロパティページをokを押して閉じる

構築終了!

 

はい、こちらはccsアドベントカレンダー12月3日の記事です

前日の記事貼る

https://neko-notnamed.hatenablog.com/entry/2019/12/02/000214?_ga=2.81019029.360535521.1575118134-638820458.1571270114

 

ccsアドベントカレンダー2019

https://adventar.org/calendars/4451

 

いつもゲー制するときは下のような感じでやってるので、ここからリファレンスを開くのが若干きつい、いい加減に作業工程覚えましょう

DXライブラリ様にはいつも大変お世話になっております(URL:https://dxlib.xsrv.jp/index.html)

f:id:Neko_NotNamed:20191126202554p:plain

気づくとこうなってる

 

一番下にデバック用にサンプルコード置いときますね(実際に作成したゲームとは若干異なるソースコードになります)

音と画像は適当に用意してください

 

なお、このサンプルコードに音素材として書かれているものは、魔王魂(URL:https://maoudamashii.jokersounds.com/)様から引っ張って、実際のゲームに使いました

 

めんどいことは実装しない主義のコードです

あと、main関数以下で具体的な数字は使わないようにしています(後で変更しやすいように)

 

 

嘘つきました

 

DrawFormatString(100, 100, fontcolor, "いくぜ!よろしくお願いします!");

 

ここでがっつり使ってますね

文字出力関数の実装を当分の目標にします

因みに今のゲー制進捗は、作ってないとかいう驚きの白さです


    #include<Dxlib.h>
#include<stdio.h>
#include<math.h>

constexpr auto NAME = 128;
constexpr auto RANGE = 30;
constexpr auto POWER = 100;
constexpr auto KEY = 3;

int width = 640;
int hight = 480;

int gamestate = 0;
int gameflag = 0;
int flag = 0;
int bgm;
int enemysound;

char name[NAME];
int grade;
int keyword[KEY];
int key;
unsigned int fontcolor = GetColor(255,233,115);
unsigned int backcolor = GetColor(237,121,135);

int gameendflag = 0;
int sceneflag = 0;

//キー取得用の配列
char buf[256] = { 0 };
int keystate[256] = { 0 };

void gamemain_update();
void gamemain_draw();
void move_player();
void keyupdate();

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	SetOutApplicationLogValidFlag(FALSE);//Log.txtを生成しないように設定
	ChangeWindowMode(TRUE);//非全画面にセット
	SetGraphMode(width, hight, 32);//画面サイズ指定
	SetMainWindowText("いくぜ!よろしくお願いします!");//ウインドウに表示される名前を設定
	SetAlwaysRunFlag(TRUE);//最小化状態でも処理を続ける

	if (DxLib_Init() == 1) { return -1; }//初期化に失敗時にエラーを吐かせて終了

	SetDrawScreen(DX_SCREEN_BACK);//描画先を裏画面に

	//画像と音を読み込む
	bgm = LoadSoundMem("DATA/game_maoudamashii_8_orgel06.mp3");

	keyword[0] = LoadGraph("DATA/key0.png");
	keyword[1] = LoadGraph("DATA/key1.png");
	keyword[2] = LoadGraph("DATA/key2.png");
	PlaySoundMem(bgm, DX_PLAYTYPE_LOOP);
	while (ProcessMessage() == 0)
	{
		ClearDrawScreen();//裏画面消す

		keyupdate();//キー入力状態を更新
		if (keystate[KEY_INPUT_ESCAPE] > 0) {
			break;
		}

		DrawBox(0, 0, width, hight, backcolor, TRUE);
		//gamestateの値で分岐
		switch (gamestate) {
		case 0:
			DrawFormatString(100, 100, fontcolor, "いくぜ!よろしくお願いします!");
			DrawFormatString(100, 200, fontcolor, "音楽:魔王魂");
			DrawFormatString(100, 300, fontcolor, "プログラム:ハトミ");
			DrawFormatString(100, 400, fontcolor, "スペースキーで開始!");
			if (keystate[KEY_INPUT_SPACE] == 1) {
				gamestate = 1;
			}
			break;
		case 1:
			DrawFormatString(100, 100, fontcolor, "メーリス全体返信、文字化け、元気いっぱい!");
			DrawFormatString(100, 200, fontcolor, "このゲームは大学祭開始のおよそ六時間前に製作開始されました");
			DrawFormatString(100, 300, fontcolor, "とりあえずスペースキーを押せば幸せになれると思う");
			DrawFormatString(100, 400, fontcolor, "スペースキーで開始!");
			if (keystate[KEY_INPUT_SPACE] == 1) {
				gamestate = 2;
			}
			break;
		case 2:
			gamemain_update();
			gamemain_draw();
			break;
		case 3:
			DrawFormatString(0, 80, fontcolor, "1.B2 2.%s", name);
			DrawGraph(0, 100, key, 0);
			DrawFormatString(100, 400, fontcolor, "スペースキーで終了!");
			if (keystate[KEY_INPUT_SPACE] == 1) {
				gameendflag = 1;
			}
		}
		//無限ループを抜けゲーム終了
		if (gameendflag == 1) {
			break;
		}

		ScreenFlip();//裏画面を表画面にコピー
	}

	DxLib_End();
	return 0;
}

void keyupdate()
{
	GetHitKeyStateAll(buf);
	for (int i = 0; i < 256; i++)
	{
		if (buf[i] == 1) {
			keystate[i]++;
		}
		else {
			keystate[i] = 0;
		}
	}
}

void gamemain_update()
{
	DrawFormatString(0, 40, fontcolor, "名前を入力してね\n");
	KeyInputString(0, 60, NAME, name, 1);

	flag = GetRand(KEY);
	if (flag == 0) {
		key = keyword[0];
	}
	else if(flag == 1) {
		key = keyword[1];
	}
	else {
		key = keyword[2];
	}
	WaitTimer(1000);
	gamestate = 3;
}

void gamemain_draw()
{
	DrawGraph(0, 100, key, 0);
}

ccs裏アドカレ3日目

ccs裏アドカレ3日目の記事です

 

前日の記事

http://yuma1338.hatenablog.com/entry/2019/12/02/113854?_ga=2.230905693.39776168.1575254285-1860844019.1575254285

ccs†裏†アドベントカレンダー2019

https://adventar.org/calendars/4668

 

Twitterでの宣言通り飯テロします

 

他の人に比べて内容があれだとかスカスカだとか思われているだろうが気にしない

そういった方はミートパイにしてやる

 

 

とりあえず貼る

(c)BANK OF INNOVATION 該当画像の転載・配布等は禁止しております。

f:id:Neko_NotNamed:20191130222350p:plain

f:id:Neko_NotNamed:20191130222417p:plain

f:id:Neko_NotNamed:20191130222412p:plain

f:id:Neko_NotNamed:20191130222406p:plain

f:id:Neko_NotNamed:20191130222400p:plain

f:id:Neko_NotNamed:20191130222355p:plain

アリス、そこ代われ…じゃなかった、退け。

f:id:Neko_NotNamed:20191130222937p:plain

お姉ちゃん恐怖症にかかりたいときに読む話です。是非一読を。

 

f:id:Neko_NotNamed:20191130222931p:plain

お姉ちゃん大好き病にかかりたければこちらを。

 

f:id:Neko_NotNamed:20191130222942p:plain

サイコパスなハゲを見たければこちらを。

 

以上です。

 

…っていうのが下書き保存されていました。我ながら狂気

 

さて、昨日ゲームのほうでガチャ更新がありまして

f:id:Neko_NotNamed:20191203004019p:plain

f:id:Neko_NotNamed:20191203004023p:plain

f:id:Neko_NotNamed:20191203004028p:plain

ガチャが来たぜ

クリスマスキャラが来たんですけど、契約素材として使われる素材にトナカイらしきやつがいるんですよね

f:id:Neko_NotNamed:20191203004340j:plain

赤丸のやつ 幻獣と呼ばれます

そして、こいつが初登場したのがここ(検索かけたから合ってると思う)

f:id:Neko_NotNamed:20191203004726p:plain

f:id:Neko_NotNamed:20191203004751p:plain

f:id:Neko_NotNamed:20191203004744p:plain

f:id:Neko_NotNamed:20191203004747p:plain

f:id:Neko_NotNamed:20191203004737p:plain

f:id:Neko_NotNamed:20191203004732p:plain

リア充爆発イベント発生してるじゃないか

しかもアタッカーの属性相性不利

f:id:Neko_NotNamed:20191203005215p:plain

f:id:Neko_NotNamed:20191203005225p:plain

恋人がこうなる

f:id:Neko_NotNamed:20191203005220p:plain

救いがラストの一握りくらいしかない

こんな暗い話をクリスマスの度に思い出す→ガチャを回す→爆死→課金のコンボをきめたくなんてならねえよ!

 

彼女を見習えよ!

f:id:Neko_NotNamed:20191203005725p:plain

お手軽にエロい格好になるのは君だけだよ

どれぐらいエロいかというとここに載せるのがためらわれるレベル

ググれば出てくると思うから探してね

 

終わり

デレマスの壁紙メーカーを使用した話

デレマス8周年記念の壁紙メーカーは期間限定機能です

終了日はチェックしといてね

これは、ccsアドベントカレンダーの12月2日の記事です

前回の記事を貼りましょう

https://note.com/kunidai/n/nb75f0c32c741

 

吾輩のつぶやきが補足されていた件ですが、裏アドカレの予備記事として書いてあるので、飯テロに遭いたくなかったら枠を埋めましょう

ccs†裏†アドカレ2019

https://adventar.org/calendars/4668

 

ccsアドカレ2019(表)はこっち

https://adventar.org/calendars/4451

 

さて、堅苦しい文は抜きにして壁紙作るよ!

まずはデレマスを起動します

f:id:Neko_NotNamed:20191126175232p:plain

デレマス起動画面(AndApp)

PCでの記事作成のイージーさに気づいた(去年はスマホでやってた顔)

 

で、壁紙作成ページがあるので探してください

f:id:Neko_NotNamed:20191126175432p:plain

デレマス壁紙メーカー

壁紙作成にはtwitter認証が必要だった気がした

後は作るだけです

素材はゲーム側で用意されています

f:id:Neko_NotNamed:20191126181940p:plain

デレマス壁紙作成中1

自分が持っていないカードの絵柄も使用可能です

素材の大きさやレイヤーの重なりに留意して進めましょう

f:id:Neko_NotNamed:20191126182156p:plain

画像の重なりに気を付けないと軽くホラーになる(画像右の編集で操作可能)

なんやかんややって完成

f:id:Neko_NotNamed:20191126182400p:plain

着物着せたら座敷童になった件

f:id:Neko_NotNamed:20191126182559p:plain

芸術センスのNASAは無視して

作成した画像は保存できますが、「dounload.jpg」で来るので複数作成する場合はすでに作成した画像の名前を変更するなどしてファイル消去のリスクを防ぎましょう

f:id:Neko_NotNamed:20191126183133p:plain

c++講座を切った日に作成した

 

猫について語ろうではにゃいか

プレイバック数時間前
「ああ、レポートが終わらない…クリプトのサントラは作業に適しているなあ…」
f:id:Neko_NotNamed:20181211101808j:plain

ガンガンガンッ

「…こんな夜遅くに誰だ?…うわああああああ!!!!!」


現在

f:id:Neko_NotNamed:20181210221116p:plain

ニャーハッハッハ!!!!!
この記事の執筆権は小生がいただいた!!!!!
猫について語ろう?ハッ!我々に噛まれてもひっかかれても「今の甘噛み…手加減最高…」ってなって余計に構ってくるキモチ悪いやつのいうことなんか誰が信じるか!!!書いててやはりこいつおかしいと思う

あ、この記事はCCSアドベントカレンダーの12月13日の分として書かれたものですにゃ
関連リンクってどう貼るんだにゃ?こうしてあーして…こうにゃ!

CCSアドベントカレンダー
https://adventar.org/calendars/3277

前日の記事(@TkawaCD_ccs)→https://glvntla.hatenablog.com/entry/2018/12/12/015858

次の日の記事(@カフェスト)→(更新有り次第乗せます)

筆者→猫に関しての変態野郎(@hatomi_1997)
(お気軽にフォローを!CCS民ならばリフォローすべくTwitterを操作するにゃ)


さて、ここで取り上げるのは、万華鏡の作り方だにゃ!
既にこいつ(@hatomi_1997)のアイコンで分かるように、実に万華鏡は美しいものだにゃ~♪
ここで作り方を見ていくとしよう(キーボード打ちづらいにゃ…あと、こいつのスクショはゲームしかしてないにゃ…)
……………何だ、キットがあるにゃ…
ホームセンターで鏡も何もかもの材料揃うにゃ…
じゃあ書く必要ないな、うん
皆、万華鏡を作れよ、さもないと小生が日替わりでアイコンチェンジしてタイムラインを混沌に陥れるぞ

…ア、ヤベ

…ダダダダダ…
…マッテマテイカナイデ…


…あ、猫のお客さん来たと思ったらいきなりウインクされて、心臓撃ち抜かれて動けなかったんですけど、動けるようになったので、カワイコチャンに挨拶しようと近づいたら逃げられた…くそう…あの耳といい、尻尾といい、…もふもふしたかったあああああ!!!!!!

…このテンション疲れた(o・ω・o)


さあて、気を取り直して万華鏡の作り方いきますか!ん?猫?今逃げられてしまって誰も近くにいないからテンションサゲサゲなので無理

あ、一応差分でも貼っておく?
f:id:Neko_NotNamed:20181210221330p:plain
ホームセンターをうろちょろすれば、万華鏡のキットは売ってあるでしょう(自由研究の時期は確実にあると思う)
鏡単体で売ってあることもある(その場合は筒やビーズを入れる容器は別途用意する必要がある)
吾が輩の近所のホームセンターは、品揃えに自信を持っている(らしい)ので、ビーカーやフラスコ、コンデンサや抵抗器、書道用品、画材は勿論のこと、タイムカードの機械等の業務用品も充実しているぞ(もはや街、無いのは本(←趣味用の本なら多少ある)と服(←作業服ならあるぞ)ぐらい)
きっとこれを読んでいる皆は、吾が輩よりは都会に住んでいるのだから、勿論これを越える品揃えのホームセンターが近くにあるよね♪

今回は製作キットを利用してグリセリンを使った万華鏡を作る
f:id:Neko_NotNamed:20181210203849j:plain




f:id:Neko_NotNamed:20181210203920j:plain

値段としては2000円ぐらい
恐らくはグリセリンの代用として、水道水に液体のりを少量加えて粘りけを出したものでも十分であるとは思われるが

何故グリセリンを使うかというと、写真を撮るのが下手な吾が輩でも、シャッターチャンスを手に入れやすいから(あとは、危険な薬品を扱うスリル、グリセリンは火気厳禁だからね…)
ビーズ部分に液体が無いものは、ビーズがすぐに動くために、空洞部分が出来やすい(動かすたびにビーズがシャカシャカ動く音が聞こえる、重力の影響をもろに受けるため、隙間ない模様を作り、それを撮影するにはわりと苦労すると思う)
f:id:Neko_NotNamed:20181210204355j:plain
しかしながら上の画像のように液体があるとビーズはゆっくりと動くために、隙間ない模様が撮りやすい
水だけで良いのでは…?という方は是非水だけで作って見てほしい、どうなるかは知らぬ

どんなにブッキーな人でも、キットがあれば作れると思う(グリセリンはわりと取り扱い注意な薬品なので、気を付けてね)
今回は、ビーズ部分だけ、カスタマイズしました(ビーズを新たに買って、割合テキトーに突っ込んだ)

f:id:Neko_NotNamed:20181210204833j:plain

それでは、皆さん、今週末は勿論ホームセンターに行きますよね?え、行かない?…メシテロすっぞ
f:id:Neko_NotNamed:20181211102131j:plain

じゃあ、前日に比べて記事が短めなので、猫について語ろうではにゃいか!

1、猫は主人

2、人間は猫の下僕

3、猫はコミュ障ではない、匂いや目線等で十分情報が伝えられるのに、人間がそれに適応しなかったために仕方なく他の動作で示しているだけだ
それが人間に伝わらないとしたら、悪いのは人間だ

4、猫は王様であり、姫様であり、我ら人間の子供であり、兄弟姉妹である、彼らの要求には素直に従うべし

5、猫は気まぐれである、と言われるが、その通りである、抱っこされたいと思って近づいても、数秒後にはトイレに行きたくなるのである

6、甘やかすことと愛情をかけることは違う、猫の意志はある程度尊重すべきではあるが、例外はいくらでもある、命に関わるものであればなおさらなのだ

7、因みに、猫の去勢手術自体(麻酔をかけるところを除く)は1分弱で終わる

8、猫は生後1週間前後で目が開くが、見えるようになるのはそれより数週間後である
それまでは彼らの世界には母猫しかいないため、人間の指を近づけると、とても怒る
なお、見えるようになると、ぼんやりと目の前の人間の指を眺めはじめるようになる(そして人間を母猫の奴隷だと認識する)

9、モンプチ等の猫餌を作るメーカーは神、モンプチに限ったことでは無いが、最近猫の餌が値上がりしている気がする(頼むから、生産中止だけは止めてくれ、値上がりはしても良いから)

10、猫だからと言って、魚好きとは限らない、肉やチーズや生クリームがある場合でも、気を抜くと奪われるので注意すること
また、刺身を食べるときは、醤油皿をなめられないように用心する事(特にワサビがある場合、その後のご機嫌とりが大変である)
カレーを舐めた猛者もいる、注意せよ(さすがに辛かったらしく、それ以降やらなくなった)

11、ネズミやウサギを捕まえてきた場合、庭に埋めても翌朝には掘り返されてまたリビングに放置されていることがある
対処としては、トイレが詰まらない範囲内の大きさであれば、トイレに流すと良い

12、獲物を捕まえてきてもギャーギャー騒がないこと、その反応を楽しみにしていることもある(高い声は喜び、低い声は警告として受けとるらしい)

13、レポートなんかやってないで、ボクのことを構ってよ、知ってる?このプリントの上を歩くとね、肉球のスタンプが押せるんだ

14、目を合わせることはバトルを意味する
だから、猫のマナーとして、目線を極力合わせない、合ってもすぐ逸らす、というのがあるらしい(親しい仲で有れば別)
だから、肉球スタンプを押されたときや、消しゴムを奪われたときは、全力で目を合わせようね!

15、猫は我々人間を起こす術を心得ている、既存の方法で起きなくなったら、技能を高めて来るので、命が無事なうちに起きること(心臓の真上や喉の上に向かって6㎏の筋肉ムキムキボディが飛んで来る現在)
過去には視線だけで飼い主を起こす者もいたとかいなかったとか

16、猫に噛まれても騒ぐな、血がダラダラと流れている場合を除いては
本気で噛まれたら、病院に行って注射なり薬などの手当てが必要である、歯形が付いたり血がにじんだりしたくらいでピーピー騒ぐな
甘噛みをその子は覚えているんだぞ?むしろ誉めろ
そしてうざがられて猫パンチなりキックなりを受けて、悦ぶがいい(猫が手加減を知っているからこそ、我々は蹴られても殴られても無事なのだ)

17、猫は爪が出た状態で生まれ、それを隠すことを他の猫と遊ぶうちに覚える、真に敬うべきは、爪の仕舞い方を知らない子猫数匹にお腹をぎゅうぎゅう押されても、愛情をかけ続ける母猫である

18、猫のオスの中には、母猫をナンパしようとして、子猫を殺し、母猫の心を再び交尾に持って行こうとする、人間でいうところのクズの所業をする猫がいる(発情期であるからまあしょうがない?人間だったら去勢案件だよね)、母猫もそのことをおさえているので、余程のことがない限り雄猫は近づけないこと、または目を離さず、最悪の事態が起こらないようにすること

19、雄猫はそれでも、子猫のことを理解し、子育て応援なり見守りなりをやってくれることがある(あるいは、子猫を殺そうとする雄猫の退治をする事もあるらしい)、折角子猫のために昆虫を捕まえても、母猫の剣幕に圧されて怖い…というようなことを訴える背中を見たら、人間が助けること(過去にコオロギを猫から受け取り、子猫の前にリリースした人、まだ子猫は獲物の概念を知らず、放置されてしまってはいたが)

20、母猫はストレスが多すぎると、子猫を殺して食べてしまうことがある、人間は母猫の手伝いをすべきではあるが、過度な干渉は避けること、また、母猫から拒絶の波動を感じたら、素直に手を引くこと、ある程度は自然の摂理に任せることも必要である

21、カラスは子猫に攻撃を加えることがある、その点において、カラスは吾が輩の敵である

22、猫は動物病院及び投薬治療が大嫌いである、実行する際はある程度の対策をする事、猫は賢いのだから

23、ねーねーねーねーねーね!!!!!!眠いのに寝れないの!どうにかしてよ!あ、こら、下僕!!!無視するなよ!!!!

24、猫の牙や爪は、獲物を仕留めるためにある、だからそのプリントから手を離せ爪を研ぐふりをして脅すなそれは大事なやつでだから止めて止めてストップストストストスト…


…まだ書いてないことはあるかもしれないが、まあこの辺にしておこう
あとね、猫は人間の言葉は分かっているよ
バカとかアホとか言っても反応はするけど、そういうのはケガをして足を痛そうに引きずっている体を動物病院用のゲージに突っ込むときとか、ゲージから逃げた体を洗濯用ネットにさりげなく突っ込んでファスナーを閉めるときとか、部屋から逃げ出そうとして、いつも空いているドアが閉まっていることに気づいた背中にゲス顔(予知していたので閉めた人)で近づくときとか、ドアを開けようとして、開かなくって???なところを眺めるとき(ドア閉めたんなら、ストッパーもかけるよね?)とかに使うべきだと思うのだよ(精一杯の攻撃)


最後に:猫は人間より賢い、偉い、尊い


明日のCCSアドベントカレンダーの記事は…あ、カフェストの人ではないですか!飲んでみたけど、美味しかったですよ!イチゴとかコーヒーとかの味は良く分からなかったですが…

次の日の記事→(@abe10010111000)

あ、止めて、キーボードだけは触らないで押さないで頬擦りも止め…あああああああああああああああ