明日への断片

ゲーム制作やプログラミング関する記事を中心に更新していこうと思います。

33欠片目:百人一首のお話

 こんにちは。学校の奨学生試験の結果、一定の学費免除を頂くことが出来て嬉しいvoidです。
奨学生と小学生ってイントネーションでの区別が難しいですよね...


今日は、何の脈絡もなく百人一首の事について書こうと思います。

百人一首

 自分は、小学校の5,6年生の時のクラブ活動で百人一首クラブに参加していました。人数はまぁ、他のクラブと比べて少ない方でしたね。
学校のクラブでやろうと思ったきっかけは、それまでは正月に祖母の家(市内)に行ったときにやったことがある程度だったのですが、3年生の頃に学年での百人一首大会があり、友達とどっちが先に全部覚えられるか競争になり、気づいたら全部覚えることが楽しくなっていて、百人一首自体も面白いと思うようになっていたからです。

 ところで、百人一首の知名度はどのくらいあるのでしょうか。お正月とかにはテレビのニュース番組で取り上げられていた記憶がありますが、近年は正月にテレビを見ないので分からんとです。
 最近では『ちはやふる』という作品で取り上げられているようですが、見たことがないので何とも言えません...


 簡単に言うと「かるた遊び」なのですが、平安、鎌倉時代に生きた歌人の優れた短歌をまとめたものでもあるのです。小学生のときは意味なんか考えずにひたすら文字とリズムだけで覚えていましたが、中学生のときにで改めて意味を調べてみたときに、当時の人々の心情が描かれていて面白いなぁと思いました。一番多いのは恋愛関係の歌だったりもします。

一字決まり句

 ここで、百人一首を実践するとき(恐らくないと思いますが...)に役立つ知識を紹介します。
プロ(?)の人たちは、読み手の人が読み始めた瞬間に『シュターン!!』と手を出していますが、あれに近づくためのものです。

一字決り句とは読んで字のごとく、「一字で決まる句」なのです。

何文字か読めば、上の句を読み切るまでもなく下の句を特定できてしまうのが、百人一首の特徴ともいえます。
それが、一文字で決まってしまう句が一字決まり句です。

具体的には、「む・す・め・ふ・さ・ほ・せ」この文字で始まる7句です。

む→  村雨の 露もまだ干ぬ 槇の葉に 霧立ち上る 秋の夕暮れ

というように、「む」と読まれた瞬間に、「きりたちのほるあきのゆふくれ」を取ればいいのです!(取り札は昔の仮名遣いがされていることが多いです)

是非とも今回は、「むすめふさほせ」だけでも覚えてもらえれば幸いです。(謎の売り込み)

す→ 住の江の 岸による波 よるさへや 夢の通ひ路 ひとめよくらむ
め→ めぐり逢ひて 見しやそれとも わかぬ間に 雲がくれにし 夜半の月かな
ふ→ 吹くからに 秋の草木の しをるれば むべ山風を嵐といふらむ
さ→ 寂しさに 宿を立ち出でて 眺むれば いづこも同じ 秋の夕暮れ
ほ→ ほととぎす 鳴きつる方を 眺むれば ただ有明の 月ぞ残れる 
せ→ 瀬を早み 岩にせかるる 滝川の われても末に 逢はむとぞ思ふ


本日は以上なりけり。ではまた!

32欠片目:ゲーム制作に便利な数学関数~atan2編~

 こんにちは。座右の銘は『人畜無益』のvoidです。
今回は唐突に数学関数紹介の続きをやっていきたいと思います。

おさらい

数学関数を使うときは、

#include <math.h>

が必要でしたね。

atan2(エータンツ―)

 このatan2というのは、2個の引数(y, x)を基にアークタンジェントを計算するというものです。

簡単にまとめると2つの座標から角度(ラジアン値)を求めることが出来るというものです。

注意点としては、引数の順番が(y, x)と、yが第1引数に来ることです。普通の座標系に慣れているとついxが先に来てしまうので要注意です!


角度が分かりやすいように、縦が2横が2の直角二等辺三角形の角度計算を例に挙げてみます。

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

int main(void)
{
	float x = 2.0;
	float y = 2.0;

	float angle = atan2(y, x);      // 角度をラジアン値で求める

	angle = angle * (180 / 3.141592);   // ラジアン値を度数法に変換する

	printf("%.2f", angle);


	return 0;
}
実行結果:
45.00


f:id:yasu-game-void:20170313012439p:plain

図で表すとこんな感じになります。



このことを応用してあげると、プレイヤーの座標と敵の座標から、「敵がプレイヤーから見てどの方向にいるか」を調べることが出来ます。


f:id:yasu-game-void:20170313013422p:plain

プ:プレイヤー

プレイヤのx座標,y座標をそれぞれplayer.x,player.yで表し、
敵のx座標,y座標をそれぞれenemy.x,enemy.yで表すとします。


このように、2つのオブジェクトの座標の差を使うことで、上の図と同じように角度を導き出すことが出来ます。ホーミングとかに使えそうですね!

お疲れ様でした。疲れました。

 本日は以上です。ではまた!

31欠片目:正しい選択

 こんにちは。嫌な予感は80%的中するvoidです。
たまに予知能力でもあるんじゃなかろうかというレベルで的中するのですが、これって誰にでもあることなんでしょうか...?


今回は雑談と言いますか、最近思ってること感じてることを吐き出す感じです。

正しさとは何か

 私たちが普段生活していく中で「選択」というものは必ず訪れるものだと思います。そしてその選択というものは往々にして、「正しい選択」が求められています。その「正しい選択」ができないと、失敗と呼ばれたり、間違いと呼ばれる結果がもたらされるのです。その失敗や間違いは、自分の不利益や損へとつながっていき、困難や苦労が生じていきます。

 


 しかし正解のない選択、またはどの選択が正しいか分からない選択というのもたくさん存在しています。
例えば、朝食を終えて先に着替えをするかそれとも先に歯を磨くか、という小さな選択や、将来の就職先や進学先を決めるといった進路を決める大きな選択もあると思います。

前者の場合、どちらが正しいということもないでしょうし、殆どの場合どちらを選んでも後に影響することはない思います。

後者は、今後の人生を大きく変化させるような選択です。その進路が正しかったどうかは、実際に進んでみてからでないと判断はつかないので、選んだ瞬間には正しいかどうかは分からない選択です。(そしてもうすぐ自分の前に立ちはだかる壁でもあります。)



 さらには、「正しい選択」をするということ自体が「間違った選択」だったりすることもあります。例えば、ある集団で過半数以上がルール違反を犯しているような場合、それを注意するという選択自体は正しい筈ですが、結果、多勢に無勢で言い負かされ、注意をした側が不利益を被るケースは少なくはないはずです。(実体験)



 小学校や中学校という場所は、用意された答えを苦労して見つけ出す大切さを学んだり、正しい答えを導き出すための力を付けるような場所だったなぁとも思ったりします。(高校は中途退学してるのでよく分からなかったですが...)
それも大事だなぁとは思いますが、恐らく世の中には正解がない選択の方が多くて、そういう選択の方が生きていく上で重要だったりするんじゃないかなぁと思ったりするのです。



などということを

 最近は考えるようになってしまっています...
先のことなんか考えずに無邪気に生きていた小学生(低学年)の頃が懐かしいです。
頭空っぽの方が夢詰め込めるんですね。

何が正しいか分からないことが多くなってきたように感じる今日この頃ですが、せめて悔いのない選択をして生きていきたいなぁと思っております。本日は以上。ではまた!

30欠片目:祝!ブログ1か月達成

 こんにちは。部屋に置いてある電波時計がズレて困っているvoidです。

気が付けば、1か月

 このブログを書き始めてからなんと1か月が経過しました!
当初の目標である、「まずは1か月続ける」という目標は無事に達成できました。

この1か月を振り返って

 ほぼブログ初心者の状態でブログを始めたのが1か月前でした。ブログを継続的に書いてみて、毎日ブログを書くのは結構難しいなぁと実感しました。その日に書きたいネタが思い浮かばなかったり、逆に書きたいことが多すぎて書くのに時間がかかってしまう日もありました。



 この1か月で投稿した記事を振り返ってみると、プログラミングの小ネタや、ミッカソン、ただの雑談や、イラストとかを用意して使えそな技術を紹介していたりいろいろやったなぁ思います。

今後に向けて

 今後の目標としては、習慣としてブログを書いていきながら、制作の進捗やイベント参加の感想などを載せていって自己アピールにつなげていけるようなものにしていけたらいいかなぁと思っています。

それでもやっぱり継続力には自信がなく、いつまで続くか不安なところもありますので、続けることを大事にしていこうと思います。


本日は以上です。ではまた!

29欠片目:小学生のプログラミング教室見学してきました

 こんにちは。要らないものでもいつか使うんじゃないかと、取っておいてしまうvoidです。(ゲームでも現実でも)

本日は、小学生にプログラミングを教えている教室のスタッフに応募するため、見学に行ってきたのでその感想を書いていきたいと思います。

小学生すごい...

授業始まる前から何というかもう時代の差を感じました...今どきは小学生低学年の子でもスマホやらタブレットやら普通に使いこなしてるんですね。

授業の内容は、以前このブログでも紹介したMinecraftや、小学生向けのプログラミング向け言語のscratchを使った授業が行われていました。


期待と危機感を感じた

 2020年からは小学校でもプログラミングの授業が必修化されるので、みんながプログラムに興味を持ってくれることは嬉しいのですが、自分より年下の人たちがバリバリプログラムできるようになるんじゃないかという危機感も感じていたりします。

若い世代に負けんように頑張っていきたいなぁと思いました。




本日は短いですが以上で。ではまた!

28欠片目:個人的便利ソフト for Windows

 こんにちは。本日とある面接試験で10分時間を間違えて、一つ前の人の時間に入室してしまうという失態をやらかしたvoidです。緊張しすぎて焦ってました...

本日はオススメの便利系フリーソフト紹介です。

便利なフリーソフト3選

 ゲームを作る時やそれ以外の時でも、快適な作業を提供してくれるフリーソフトを厳選して3つ紹介したいと思います。

EDGE~手軽に画像を用意~

takabosoft.com

 とってもお手軽で使いやすいドット絵ツールです。


ささっと起動、ささっと作って、ささっと保存出来るのでとても使いやすく、
ゲームを作るときに、とりあえず仮の画像を用意したいなーというときによく使っています。

ドット絵上手く打てないので本格的には使っていないですが、アニメーション作成や、レイヤー管理など機能も充実しています。

Everything ~迷子のファイルを瞬時に検索~

forest.watch.impress.co.jp

ファイル名を検索することで、瞬時にそのファイルの場所を見つけ出してくれる優れものです。

たまにフォルダ管理が雑になってしまい、「あのフォルダどこ行ったっけ?」となってしまうことが多々あったのですが、名前さえ覚えていれば一瞬で開くことが出来るので、ファイルやフォルダが迷子になることがなくなりました。

Rapture~画面を一瞬でキャプチャ~

Rapture

友人に教えてもらった、通称:おにぎりと呼ばれる画面キャプチャソフトです。

シンプルで使いやすいながらも、ズーム、透明化、文字を追加するなどの機能もあり、画面上にあるものをいちいち紙にメモする手間を省いてくれるのでとても便利です。

いつもお世話になっています

 これだけ、便利なソフトを無料で使わせてもらっていることに改めて感謝したいと思います。
また便利なソフトを見つけたら、紹介していきたいと思います。

本日は以上。ではまた!

27欠片目:ハンガリアン記法で変数宣言

 こんにちは。本日、咳がうまくできずに息が詰まり、割と身の危険を感じたvoidです。
まだちょっとのどが痛いです...

ハンガリアンて何ガリアン?

 ハンガリアン記法って何ぞ?(この流れ何度目だ)
ハンガーみたいなエイリアンでしょうか?いいえ、違います。

プログラミングで、変数名やクラス名などをを自分で決めるときに、一定のパターンを用いることで、その変数あるいはクラス名を見ただけで、型やスコープを分かりやすくするという書き方です。

因みに、考案者の方がハンガリー出身だったことからハンガリアン記法なのだそうです。

どういう書き方をするのか

基本的には、変数の頭に、決まった文字を付けます。
例えば、グローバル変数には『g_』と付けます。

時間を管理する変数を、グローバルで宣言する場合、

int g_time;   // 時間を管理する変数

のようにします。
すると、このプログラムを第三者が見て、g_timeが使われてる処理を見つけた場合、これはグローバル変数だということが一発で分かります。

逆に言うと、グローバル変数でない変数にg_を付けてしまうと、大変混乱を招くでしょう。

どんなものがあるか

 『ハンガリアン記法』で調べれば一覧のようなものはいくらでも出てくるので、普段使っているものや、使うと便利だと思ったものを紹介したいと思います。

頭に付ける文字 意味
m_ クラスのメンバ変数 m_cnt
p ポインタ型 pScene
s 文字列型 sName

この辺りは、割と良く使うかなぁと思います。

自分は最近までポインタ型を『p_』で書いていたので、ポインタ型のメンバ変数の場合に、見にくいなぁと思いながらも『m_p_scene』みたいに使っていました。最近では、『m_pScene』と書くようにしています。こちらの方がポインタ型メンバ変数であることが分かりやすいと思います。

好き嫌いはあるみたい

 プログラムの書き方は基本的に自由なので、「この書き方は嫌い!」という人もいるようです。
ですが、変数を見ただけで、型の情報やスコープを知れるというメリットが存在するので、知っていて損はないと思いました。

本日は以上!ではまた~