ゲーム制作RTA(VS2017、DXライブラリ使用)
- VS2017を起動
- ファイル->新規作成->プロジェクト
- Windowsデスクトップウィザード、ソリューションのディレクトリは作成しない
- Windowsアプリケーション(.exe)、空のプロジェクト
- ソリューションエクスプローラーのソースファイルを右クリック->追加->新しい項目->c++ファイル
- プロジェクト->(プロジェクト名の)プロパティ(なんか出てこない時があるので、ソリューションエクスプローラー内でソリューションを選択してもう一度行ったり他の項目を選択したりする)
- すべての構成に変更->構成プロパティ->全般->文字セット、マルチバイト文字
- 構成プロパティ->c/c++->全般->追加のインクルードディレクトリ、プロジェクトに追加すべきファイル_VC用のパス
- 構成プロパティ->リンカー->全般->追加のライブラリディレクトリ、プロジェクトに追加すべきファイル_VC用のパス
- Releaseの変更
- 構成プロパティ->c/c++->ランタイムライブラリ->コード生成、/MT
- Debugに変更
- 構成プロパティ->c/c++->ランタイムライブラリ->コード生成、/MTd
- プロパティページをokを押して閉じる
構築終了!
はい、こちらはccsアドベントカレンダー12月3日の記事です
前日の記事貼る
ccsアドベントカレンダー2019
https://adventar.org/calendars/4451
いつもゲー制するときは下のような感じでやってるので、ここからリファレンスを開くのが若干きつい、いい加減に作業工程覚えましょう
DXライブラリ様にはいつも大変お世話になっております(URL:https://dxlib.xsrv.jp/index.html)
一番下にデバック用にサンプルコード置いときますね(実際に作成したゲームとは若干異なるソースコードになります)
音と画像は適当に用意してください
なお、このサンプルコードに音素材として書かれているものは、魔王魂(URL:https://maoudamashii.jokersounds.com/)様から引っ張って、実際のゲームに使いました
めんどいことは実装しない主義のコードです
あと、main関数以下で具体的な数字は使わないようにしています(後で変更しやすいように)
嘘つきました
ここでがっつり使ってますね
文字出力関数の実装を当分の目標にします
因みに今のゲー制進捗は、作ってないとかいう驚きの白さです
#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日目の記事です
前日の記事
ccs†裏†アドベントカレンダー2019
https://adventar.org/calendars/4668
Twitterでの宣言通り飯テロします
他の人に比べて内容があれだとかスカスカだとか思われているだろうが気にしない
そういった方はミートパイにしてやる
とりあえず貼る
(c)BANK OF INNOVATION 該当画像の転載・配布等は禁止しております。
アリス、そこ代われ…じゃなかった、退け。
お姉ちゃん恐怖症にかかりたいときに読む話です。是非一読を。
お姉ちゃん大好き病にかかりたければこちらを。
サイコパスなハゲを見たければこちらを。
以上です。
…っていうのが下書き保存されていました。我ながら狂気
さて、昨日ゲームのほうでガチャ更新がありまして
クリスマスキャラが来たんですけど、契約素材として使われる素材にトナカイらしきやつがいるんですよね
そして、こいつが初登場したのがここ(検索かけたから合ってると思う)
リア充爆発イベント発生してるじゃないか
しかもアタッカーの属性相性不利
恋人がこうなる
救いがラストの一握りくらいしかない
こんな暗い話をクリスマスの度に思い出す→ガチャを回す→爆死→課金のコンボをきめたくなんてならねえよ!
彼女を見習えよ!
お手軽にエロい格好になるのは君だけだよ
どれぐらいエロいかというとここに載せるのがためらわれるレベル
ググれば出てくると思うから探してね
終わり
デレマスの壁紙メーカーを使用した話
デレマス8周年記念の壁紙メーカーは期間限定機能です
終了日はチェックしといてね
これは、ccsアドベントカレンダーの12月2日の記事です
前回の記事を貼りましょう
https://note.com/kunidai/n/nb75f0c32c741
吾輩のつぶやきが補足されていた件ですが、裏アドカレの予備記事として書いてあるので、飯テロに遭いたくなかったら枠を埋めましょう
ccs†裏†アドカレ2019
https://adventar.org/calendars/4668
ccsアドカレ2019(表)はこっち
https://adventar.org/calendars/4451
さて、堅苦しい文は抜きにして壁紙作るよ!
まずはデレマスを起動します
PCでの記事作成のイージーさに気づいた(去年はスマホでやってた顔)
で、壁紙作成ページがあるので探してください
壁紙作成にはtwitter認証が必要だった気がした
後は作るだけです
素材はゲーム側で用意されています
自分が持っていないカードの絵柄も使用可能です
素材の大きさやレイヤーの重なりに留意して進めましょう
なんやかんややって完成
作成した画像は保存できますが、「dounload.jpg」で来るので複数作成する場合はすでに作成した画像の名前を変更するなどしてファイル消去のリスクを防ぎましょう
猫について語ろうではにゃいか
プレイバック数時間前
「ああ、レポートが終わらない…クリプトのサントラは作業に適しているなあ…」
ガンガンガンッ
「…こんな夜遅くに誰だ?…うわああああああ!!!!!」
現在
ニャーハッハッハ!!!!!
この記事の執筆権は小生がいただいた!!!!!
猫について語ろう?ハッ!我々に噛まれてもひっかかれても「今の甘噛み…手加減最高…」ってなって余計に構ってくるキモチ悪いやつのいうことなんか誰が信じるか!!!書いててやはりこいつおかしいと思う
あ、この記事は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)
さあて、気を取り直して万華鏡の作り方いきますか!ん?猫?今逃げられてしまって誰も近くにいないからテンションサゲサゲなので無理
あ、一応差分でも貼っておく?
ホームセンターをうろちょろすれば、万華鏡のキットは売ってあるでしょう(自由研究の時期は確実にあると思う)
鏡単体で売ってあることもある(その場合は筒やビーズを入れる容器は別途用意する必要がある)
吾が輩の近所のホームセンターは、品揃えに自信を持っている(らしい)ので、ビーカーやフラスコ、コンデンサや抵抗器、書道用品、画材は勿論のこと、タイムカードの機械等の業務用品も充実しているぞ(もはや街、無いのは本(←趣味用の本なら多少ある)と服(←作業服ならあるぞ)ぐらい)
きっとこれを読んでいる皆は、吾が輩よりは都会に住んでいるのだから、勿論これを越える品揃えのホームセンターが近くにあるよね♪
今回は製作キットを利用してグリセリンを使った万華鏡を作る
値段としては2000円ぐらい
恐らくはグリセリンの代用として、水道水に液体のりを少量加えて粘りけを出したものでも十分であるとは思われるが
何故グリセリンを使うかというと、写真を撮るのが下手な吾が輩でも、シャッターチャンスを手に入れやすいから(あとは、危険な薬品を扱うスリル、グリセリンは火気厳禁だからね…)
ビーズ部分に液体が無いものは、ビーズがすぐに動くために、空洞部分が出来やすい(動かすたびにビーズがシャカシャカ動く音が聞こえる、重力の影響をもろに受けるため、隙間ない模様を作り、それを撮影するにはわりと苦労すると思う)
しかしながら上の画像のように液体があるとビーズはゆっくりと動くために、隙間ない模様が撮りやすい
水だけで良いのでは…?という方は是非水だけで作って見てほしい、どうなるかは知らぬ
どんなにブッキーな人でも、キットがあれば作れると思う(グリセリンはわりと取り扱い注意な薬品なので、気を付けてね)
今回は、ビーズ部分だけ、カスタマイズしました(ビーズを新たに買って、割合テキトーに突っ込んだ)
それでは、皆さん、今週末は勿論ホームセンターに行きますよね?え、行かない?…メシテロすっぞ
じゃあ、前日に比べて記事が短めなので、猫について語ろうではにゃいか!
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)
あ、止めて、キーボードだけは触らないで押さないで頬擦りも止め…あああああああああああああああ