かずが私の親ばかスイッチを入れた。ラケットゲームの完成はもうそこまできている。ゲームを難しくするために,ボールのスピードを段階的に上げていこうとかずは考えた。「ラケットに当たる数をカウントして…」と言いながら,scountという変数を定義し,ラケットの衝突を判定する箇所でscountに1を足し,ミスをして玉を後ろに逃したら,0に戻すようにプログラムを変更していく。
「scountを10で割って,割り切れるときにボールのスピードを上げようと思うがいけど,どうけ?」とかずが言う。「お前,どうしてそんなこと思いついた。センスあるなあ!」と私の親ばかスイッチの目盛りは一気にレッドゾーンに達した。
ボールのスピードを上げるには,ボールの座標にプラスする変化率zとaの値を大きくすればよい。
----------------------------------------
*syoutotu
// ヒットの判定
if (y >= (yy-4))&(y <= (yy+4)){
if (x >=(xx-4))&(x <= (xx+64)){
scount+=1
score+=1
if (z < 7){
if ((scount \ 10) =0) {
z+=1
if (a > 0) {
a+=1
}
else {
a-=1
}
}
}
z=z*(-1)
}
}
return
----------------------------------------
zはY軸の変化率でaはX軸の変化率である。zの最大値は7と決めているので,z < 7のときに,変化率を加算している。(scount \ 10) =0が10で割ったあまりが0の判定である。コンピュータとのラリーが10回続いたときに,z+=1でボールを加速するのである。scountを加算していって10になったら,zの値を大きくするという方法が考えやすいのであるが,その方法だと,一々scountを0クリアしなければならない。 10で割り切れるときに加算すれば,そんな必要はない。
「かず,でも変数に最大いくつの数値まで,記憶できるか知っとるが?」とたずねると「4億ぐらい」だから気にしなくていいやろと答えた。こやつ,なかなか用心深い。
しかし,X軸の変化率aへの加算が,なかなかうまく行かなかった。というのは,画面の右にボールが進むときはaの値が正だけど,左に進むときは負であることを忘れていた。aが正のときに1足すと右に広角に移動するのだが,負のときに1を足すと,X軸の変化率が小さくなり,鋭角にボールが移動してしまった。
「関数で,サイン(符号)を求めて,それから絶対値を求め1を足してから,サインを戻してやればいい」とアドバイスしたのだが,サインや絶対値を求める関数はHSP (Hot Soup Processor)には用意されていなかった。if (a > 0)でaが0より大きかったら,1を足し,そうでなかったら引くようにした。これでボールの動きは定まった。
かずはscore (スコア)という変数も追加した。ラケットに当たった数をscore+=1と累計して,ゲーム終了時に表示させるのだと,次のような終了画面のコードを書いた。
----------------------------------------
color bg_R,bg_G,bg_B
boxf 0,0,winx,winy
color 255,0,0
font "MS ゴシック",60,1
pos 85,120
mes "GAME OVER"
color 0,0,0
font "MS ゴシック",30,1
pos 240,200
mes "スコア "+score+" "
stop
----------------------------------------
フォントを変えたり,色を変えたりしてスコアを表示する。
さすが,毎日ゲームをしているだけあって,終了画面はそれらしい。
サウンドはフリーのmp3ファイルをダウンロードして,鳴らすようにした。
----------------------------------------
sndload "bgm0008.mp3",1,1
snd 1
----------------------------------------
サウンドの再生は簡単だ。sndload命令でmp3ファイルをバッファに読み込み,sndで再生すればよい。再生を止めるにはsndoff命令を使う。
1つ問題だったのは,sndload命令の3つ目の引数1はサウンドファイルを繰り返し再生することを意味するのだが,繰り返しのたびに,ボールの動きが遅くなることだった。
なるべく時間の長いmp3ファイルを選び,よしとした。
これで一応,ラケットゲームは完成した。かずは今,「HSP2.55プログラミング入門」(おにたま,悠黒喧史,うすあじ共著 秀和システム発行)を毎日,熱心に読んでいる。そういえば,こうしろうも中学に入学する数ヶ月前の時期には坂村 健教授著の「痛快コンピュータ学」を一生懸命理解しようとしていた。
かずが今後,どんなプログラムを作るのか楽しみになってきた父である。
第150話 10で割り切れるときに,スピードを上げたら,どうけ?
あなたにお薦め
今日のピックアップ
-
不要な製品の購入を強いられる、ブロードコムのVMware買収で悪影響
-
米GitHubが「Workspace」を開始、ソフト開発の課題をAIが自動解決
-
Core Ultra搭載の「dynabook R9」、35時間駆動の実力
-
パスワード管理や不正サイト対策はEdgeもChromeも充実、複数機器の同期は選べる
-
コメント関連が使いやすくなった新Acrobat Reader、「クイックツールバー」に集約
-
M3搭載「MacBook Air」とM2搭載モデルを比較、外付けディスプレー2台接続も試す
-
有名人になりすまして投資広告を掲載、SNSで接触してみた結果
-
NECが受注したe-Govのガバクラ移行が大幅遅延、構築手法の途中変更が影響か
-
IIJ公式サイトのPVがある日突然13倍に、バズったわけでも炎上したわけでもない裏側
-
アリババのデジタル人材育成プログラム、世界の起業家や若者4千人以上にノウハウ提供
-
縦長のWebページ全体を画像で保存、メニューから選べるEdgeがChromeより便利
-
「四重苦」で伸び悩む日本市場、なぜ海外スマホメーカーが開拓に本腰を入れるのか
注目記事
おすすめのセミナー
-
「仮説立案」実践講座
例えば「必要な人材育成ができていない」といった課題に、あなたならどう取り組みますか? このセミナ...
-
CIO養成講座 【第35期】
業種を問わず活用できる内容、また、幅広い年代・様々なキャリアを持つ男女ビジネスパーソンが参加し、...
-
改革リーダーのコミュニケーション術
プロジェクトを成功に導くために改革リーダーが持つべき3つのコミュニケーションスキル—「伝える」「...
-
パワポ資料が見違える「ビジネス図解」4つのセオリー
インフォグラフィックスとは、形のない情報やデータなど伝えたいことを分かりやすい形で表現する技法で...
-
間違いだらけの設計レビュー
本セミナーでは、現場で多く見られる間違ったレビューの典型例を示し、そうならないための現場の改善策...
-
オンライン版「なぜなぜ分析」演習付きセミナー実践編
このセミナーでは「抜け・漏れ」と「論理的飛躍」の無い再発防止策を推進できる現場に必須の人材を育成...
-
問題解決のためのデータ分析活用入門
例えば「必要な人材育成ができていない」といった課題に、あなたならどう取り組みますか? このセミナ...
-
業務改革プロジェクトリーダー養成講座【第16期】
3日間の集中講義とワークショップで、事務改善と業務改革に必要な知識と手法が実践で即使えるノウハウ...
注目のイベント
-
日経クロステックNEXT 関西 2024
2024年5月16日(木)~5月17日(金)
-
日経ビジネスCEOカウンシル
2024年5月16日(木)17:00~19:50
-
WEURO DIVERSITY & INCLUSION FORUM
2024年5月17日(金)13:00~17:30(予定)
-
VUCA時代に勝ち残る戦略的サプライチェーン構築に向けて
2024年 5月 24 日(金) 10:00~16:20
-
人手不足を乗り越える 日本の産業界成長のシナリオ2024
2024年5月30日(木)10:20~17:45
-
人的資本経営版:日経ビジネスLIVE 2024 Spring
2024年6月3日(月)~6月5日(水)
-
DX Insight 2024 Summer
2024年6月4日(火)、5日(水)
-
付加価値ある意匠デザインを実現するものづくり技術2024
2024年6月7日(金)10:30 ~ 17:00
-
WOMAN EXPO 2024
2024年6月8日(土)10:00~17:30
-
デジタル立国ジャパン2024
2024年6月10日(月)、11日(火)
おすすめの書籍
-
ソフトバンク もう一つの顔 成長をけん引する課題解決のプロ集団
ソフトバンクにはモバイルキャリア事業以外のもう一つの顔が存在する。本書ではキーパーソンへのインタ...
-
対立・抵抗を解消し合意に導く 改革リーダーのコミュニケーション術
本書は、改革リーダーに必須のコミュニケーション術を3つのスキルの観点からまとめ上げたものです。今...
-
もっと絞れる AWSコスト超削減術
本書ではコスト課題を解決するため、AWSコストを最適化し、テクニックによって削減する具体策を紹介...
-
優秀な人材が求める3つのこと 退職を前提とした組織運営と人材マネジメント
「学生に人気のコンサルであっても、大手企業であっても、せっかく獲得した人材が数年で辞めてしまう...
-
Web3の未解決問題
ブロックチェーン技術を主軸とするWeb3の技術について、現在の社会制度との摩擦と、その先にある新...
-
ロボット未来予測2033
ロボットの用途・市場はどう拡大していくのか。AI実装でロボットはどこまで進化するのか。技術の進展...