第94話 暑苦しさと、深夜の混浴と、エアホッケーゲームの中身4

 夜中に息苦しさで目が覚めた。

 見ると胸に上にエレクが乗っている。

 エレク、重いよ。


 おかげで汗びっしょりだ。

 風呂はもうやってないかな。

 魔法で水を出して汗を流すだけでも良い。


 俺は手ぬぐいと風呂桶を持って深夜の風呂場に行った。

 灯りも落ちているし、物音一つしない。


 俺は魔道具を操作して灯りを出した。

 そして、浴槽に魔法でお湯を張る。


 お湯を後で抜いておけばいいよね。

 入る前に体を洗っていたら、背中を擦られた。


「ひぃ」


 俺は飛びあがって振り返った。

 いたのはマイラだった。


 バスタオルを体に巻いているだけで、衣服は脱いでいるようだ。


「驚いた?」

「ああ、肝が縮んだよ」

「風呂に入りに行くのが見えたから。一緒に入る?」

「そうだね。ここまで来たら」


 マイラと二人風呂にゆっくりと浸かる。


「懐かしいね。二人してキングウルフを解体したのよね」

「そうだね。昨日の事のようだ」


「私の事は無理をしなくていいの。王族と釣り合わないのは分かっている。愛してくれるだけでいいのよ」

「そういう訳にもいかない。俺が納得できないんだ。貴族や王族が何だってんだ。元を辿れば先祖はみんな平民だろ。それどころか盗賊の親分だったかも知れない。マイラの身分と何が違う。同じだ。同じ人間だ」


 マイラが何も言わずに俺に抱きつく。

 柔らかさが伝わってくる。

 やばい、一線を越えそうだ。

 この歳でそれは不味い。

 逃避だ。

 エアホッケーゲームの続きを考えるぞ。

 壁の当たり判定とマレットとパックの当たり判定だったな。

 壁は。


int wall_judge(PUCK *puck1)

{

 if(puck1->y < 0.0 && puck1->x > 50.0 && puck1->x < 100.0 ) return(1); /*プレイヤー1ゴールに入る*/

 if(puck1->y > 200.0 && puck1->x > 50.0 && puck1->x < 100.0 ) return(2); /*プレイヤー2ゴールに入る*/


 if(puck1->x < 0.0) puck1->direction=PI-puck1->direction; /*壁左に当たる*/

 if(puck1->x > 150.0) puck1->directio=PI-puck1->direction; /*壁右に当たる*/

 if(puck1->y < 0.0) puck1->direction=2.0*PI-puck1->direction; /*壁上に当たる*/

 if(puck1->y > 200.0) puck1->direction=2.0*PI-puck1->direction; /*壁下に当たる*/


 if(puck1->direction<0.0) puck1->direction+=PI*2.0;

 if(puck1->direction>PI*2.0) puck1->direction-=PI*2.0;

 return(0);

}


 壁の当たり判定はなんとか出来た。

 壁、柔らかい壁。

 いかん。

 落ち着かないと。

 思考を魔法に戻すんだ。

 よし円と円の当たり判定をするぞ。


 円と円との当たり判定は中心の距離が半径の和以内だと当たっている。

 距離は三平方の定理で分かるからこれも問題ない。

 しかし、衝突すると変わる角度の計算がどうしても思い出せない。

 ベクトルの計算を使うというのは分かっているが、どうだったか。


 このぐらい端折って世界に任せても問題ないだろう。

 そうしよう。

 いい加減、頭から湯気が出そうだ。

 一介のプログラマーはここが限界か。

 3D関係のプログラマーは尊敬する。

 ああいう計算はしたくない。


 二つの円の当たり判定。

 目の前にある二つの円。

 いかん。

 鼻から血がだらだらと流れているのに気づいた。


「ごめん、のぼせて鼻血が出た。先に上がる」


 俺はマイラを振りほどき湯船から上がった。

 脱衣所で深呼吸する。

 危なかった。

 深夜の風呂にはもう行かないぞ。

 今度から行かなくても済む魔法を考えよう。


char dirt[10]; /*汚れ十立方センチ*/

extern MAGIC *magic_make(char *target_obj,int target_size,int image);

extern void magic_delete(MAGIC *mp);

extern void mclose(MAGIC *mp);

void main(void)

{

 MAGIC *mp; /*魔法定義*/

 mp=magic_make(dirt,sizeof(dirt),IMAGEUNDEFINED); /*汚れを魔法として登録*/

 magic_delete(mp); /*汚れを消去*/

 mclose(mp); /*魔法を終わる*/

}


 ふう出来たぞ。

 実行してみる。

 心も体も綺麗さっぱりだ。

 とにかくエアホッケーゲームのプロジェクトはアルファ版完成としよう。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る