問う
「ふにゃふにゃ」のデモ画面を作りました。
ゲームのメイン処理のほぼファイルごとコピーです。
タイトルで暫く待っていると2分の1の確率で操作説明が出てきて、2分の1の確率でステージ特有のデモ画面があれば始まります。
なければ操作説明がでてきます。
ところで、これを見ている人に訊きますが、タイトル画面からデモに入るまでの時間はどれくらいがいいでしょうか。
今は約66秒です。
ただし何故か数秒の誤差があります。
「ふにゃふにゃ」のデモ画面を作りました。
ゲームのメイン処理のほぼファイルごとコピーです。
タイトルで暫く待っていると2分の1の確率で操作説明が出てきて、2分の1の確率でステージ特有のデモ画面があれば始まります。
なければ操作説明がでてきます。
ところで、これを見ている人に訊きますが、タイトル画面からデモに入るまでの時間はどれくらいがいいでしょうか。
今は約66秒です。
ただし何故か数秒の誤差があります。
TokioGLのテストが済んだので公開です。
2回の">>18"を最後の">>16"にまとめてしまうことで高速化と精度を上げることができました。
tglStretchBltを作るにあたって「VisualBasic初心者連盟」の「きれいに縮小」を参考にさせて頂きました。
サンプルに使ったアイコンは「パネルα」のパネルに流用しました。
「パネルα」は兎に角パネルが不足しているんですよ。
126種類揃うには揃っているのですが、やたら紛らわしいf君がたくさんいるんですよ。
色違いを作ることによってある程度は減らすことができましたが。
TokioGLのtglStretchBlt関数で転送先の大きさが転送もとの大きさの整数倍のときには普通のStretchBltを使うようにして高速化を図りました(tglStretchBltは恐ろしく遅いです)。
これで一応tglStretchBltに関しては公開しても良い頃になりましたので、近いうちに公開します。
その前にテストをもっと行わねば……
「リダクター」の8ビットビットマップを減色する処理を作りました。
何故か256色目が使用されているとメモリエラーを起こしますが。
理由については全く見当がつきません。
配列のサイズを大きくしてみても変わらなかったのでここは違いそうです。
「ふにゃふにゃ」のタイトル画面で、スクリプトを実行した時にエラーが起こっても表面上は何もなかったように見せかけるようにしました。
以前は実行に失敗するとタイトルがびよ~んとなります。
「ニンテンドウオールスター!大乱闘スマッシュブラザーズ」に登場するピカチュウには雌雄どちらもいることがわかりました。
それがわかった時はこういう状況でした。
可能な限り弱くしたピカチュウ3匹とサムス一人が戦いました。嗚呼、今操作しているピカチュウは雌だったんだ……
私の使っているピカチュウがビームソードを手に入れました。
しかし剣の振り方がどうも不自然なのです。
ポーズ画面で拡大してよく見てみると、ピカチュウは剣を口に咥えたまま振っていることがわかりました。
「これは面白いことを発見した!」
そう思った私は愚かにもさらに色々な姿を見てみたいと思い、何かをする度にポーズをかけていたのです。
ピカチュウをしゃがませていると、他のピカチュウが近づいてきていましたが、さして気にも留めずにポーズしたのです。
するとポーズ画面には2匹のピカチュウが……(略)!
それはともかく、TokioGLの関数のひとつ、tglStretchBltが出来上がりました。
昨日書いていた問題は、S/DとすべきところをD/Sにしたために起こっていることがわかりました。
きれいな回転コピーをするtglRotateBltは無理そうです。
色を計算するアルゴリズムが相当複雑になりそうなので。
きれいな拡大縮小コピーをサポートするDLL、TokioGLを作っていたんですが、どうもうまくいきません。
引数の引渡しがうまくいっていないようですし、拡大縮小しようとすると止まりますし、さらにはBitBltさえも失敗している模様です。
・・・・と思いきやVBの方でByValを忘れていただけでした。
しょーもないミスすんな~。
どうやら日記を書いていることは意外な効果があるようです。
どちらにしても問題はまだ解決していませんが……
「ふにゃふにゃ」で、デモ画面(タイトルで何もしないでいるとなる画面)のプログラムを作りました。
スクリプトクラスは使いまわし、関数はコピペです。
勿論どちらも多少の変更を加えますが、基本は同じです。
タイトル画面で何もしないでいると2分の1の確率で操作説明が出て、それ以外では選択中のファイルの中に"demo.c"があればそれを実行し、なければ操作説明です。
スペースキーを押すとタイトルに戻ります。