2006/06/19(月) [n年前の日記]
#1 [iappli] プレイ時間の概念を追加
0〜3分でクリアすればボーナスが入るようにした。
某サービスのゲームをプレイして、プレイ時間表示を確認してみたのだけど。秒より小さい値についても2桁ほど表示されていて悩んでしまったり。
例えばこれが 10FPS のアプリで、かつ、メインループが回る際にカウントして時間を記録してたとしたら、2桁表示の下1桁は必ずゼロになってしまう。そのアプリはいったいどのくらいのFPSで作ってあるのか。それを考えると、悩む。
それとも、System.currentTimeMillis() を呼び出す場所によって、意外と変化のある値が返ってくるのだろうか。
何にせよ、自分の作成してるアプリは10FPSにしてしまっているので、1桁表示ならともかく、2桁表示は難しそうな予感。
秒より小さい値については、いっそ乱数にしてしまうという、非常にゲームプログラムらしい手もあるけど。どうしたもんか。
某サービスのゲームをプレイして、プレイ時間表示を確認してみたのだけど。秒より小さい値についても2桁ほど表示されていて悩んでしまったり。
例えばこれが 10FPS のアプリで、かつ、メインループが回る際にカウントして時間を記録してたとしたら、2桁表示の下1桁は必ずゼロになってしまう。そのアプリはいったいどのくらいのFPSで作ってあるのか。それを考えると、悩む。
それとも、System.currentTimeMillis() を呼び出す場所によって、意外と変化のある値が返ってくるのだろうか。
何にせよ、自分の作成してるアプリは10FPSにしてしまっているので、1桁表示ならともかく、2桁表示は難しそうな予感。
秒より小さい値については、いっそ乱数にしてしまうという、非常にゲームプログラムらしい手もあるけど。どうしたもんか。
◎ 等加速度運動の公式を見ながら :
ジャンプ時の初速を計算。x = vt + ((g * (t * t)) / 2) の式に、x:高さ、g:加速度、t:フレーム数、を入れながら、希望に叶う初速度を求める。…なんでも「浮遊感」が足りないらしいので。そのへん調整するために。
計算で求めた値と、実際にプログラム中に入れた値では、どうも跳んでる高さが合わなくて悩む。メモ用紙に書きながら考えてるうちに気がついた。プログラム中に入れた初速度は、t = 0 の場合に対応するわけではなく、t = 1 の場合に対応するので、公式を使って求めた値をそのまま入れればいいというわけではなく。t = 1 の場合、公式は、x = v + (g/2) となるので、つまり加速度の1/2を初速度に加味しないといけない。たぶん。ということで、v = (x - ((g * (t * t)) / 2)) / t で求めた値から (g/2) を加味した値を初速度に。…ホントにあってるのかどうかちと自信なし。
計算で求めた値と、実際にプログラム中に入れた値では、どうも跳んでる高さが合わなくて悩む。メモ用紙に書きながら考えてるうちに気がついた。プログラム中に入れた初速度は、t = 0 の場合に対応するわけではなく、t = 1 の場合に対応するので、公式を使って求めた値をそのまま入れればいいというわけではなく。t = 1 の場合、公式は、x = v + (g/2) となるので、つまり加速度の1/2を初速度に加味しないといけない。たぶん。ということで、v = (x - ((g * (t * t)) / 2)) / t で求めた値から (g/2) を加味した値を初速度に。…ホントにあってるのかどうかちと自信なし。
◎ 左右キーでの速度決定。 :
左右キーを押した際に、x速度にx加速度を加算して速度を決定してるのだけど。押し続けたときに大きく動いてほしいから大き目の加速度を入れてみると、ちょっと動かしたいときにも大きく動いてしまって困ってしまう。さりとて加速度を小さくすると、今度は大きく動いてくれない、というか反応が鈍くなって困ってしまう。
速度、あるいは加速度をテーブルにして代入してみたり等、色々試したけれど、どうも上手くいかない。左右のどちらかに跳んでるときはいいが、跳んだ方向の反対側にキーを入れたときに、反応が鈍かったり勢いがつきすぎたりしてイライラする。カウンタの変化のさせ方がマズイ気もするが。なんだか頭の中がグチャグチャになってきた。
ふと。ちょっとだけ動かしたいときは、えてしてちょんちょんとキーを入れたりすることに気づいた。トリガーが入ったときだけ小さい加速度にしてみた。ちょんちょんとキーを入れたときは思ったとおりの反応になるけど。それでもやっぱり何かが違う。が、とりあえずこのままにしておく。
内部で複数回処理を回してみるか。と思ってループの中に組み込んでみたりもしたけれど。考えてみればキー入力も反映させないといかんのだな。…時間調整関係も面倒なので、元に戻した。
速度、あるいは加速度をテーブルにして代入してみたり等、色々試したけれど、どうも上手くいかない。左右のどちらかに跳んでるときはいいが、跳んだ方向の反対側にキーを入れたときに、反応が鈍かったり勢いがつきすぎたりしてイライラする。カウンタの変化のさせ方がマズイ気もするが。なんだか頭の中がグチャグチャになってきた。
ふと。ちょっとだけ動かしたいときは、えてしてちょんちょんとキーを入れたりすることに気づいた。トリガーが入ったときだけ小さい加速度にしてみた。ちょんちょんとキーを入れたときは思ったとおりの反応になるけど。それでもやっぱり何かが違う。が、とりあえずこのままにしておく。
内部で複数回処理を回してみるか。と思ってループの中に組み込んでみたりもしたけれど。考えてみればキー入力も反映させないといかんのだな。…時間調整関係も面倒なので、元に戻した。
◎ アプリ起動時のサウンド有効無効。 :
今までは初回の起動時にサウンド無効にしてたのだけど。「有効にすべし」という要求がきたので有効に。
無効にしてたのは理由があって。以前友人から、「携帯ゲーム = 電車での移動時や何かの受付の待ち時間の暇つぶしにやることが多い」と聞いてたので、電車の中でDL・起動したらいきなり音が鳴り始めた、なんてのはマズイだろうと想像して。ていうか自分も、とある携帯アプリをDL・起動したら、タイトル画面で音楽が鳴り始めてビビった記憶が。夜中の3時なのに。隣の部屋では妹が寝てるのに。ちょっとちょっと困るんですよ。マジ困るんですよ。サウンド設定はどこよ。みたいな。
ユーザの心境を考えると、大体想像はつく。音が鳴り始めて、まずビックリする。サウンド設定を探すなり、イヤホン持ってればつけるなり、場合によってはアプリの終了キーを押してしまうかもしれない。その間、おそらくわずか数秒の話。が。その後、ユーザの中で、徐々に、ムクムクと、怒りが湧いてくる。「なんでこんなところで(or こんな時間に)鳴るんだよ! このクソアプリが!」みたいな。たった数秒、心沸き立つ軽快な音楽を鳴らしたが故に、ユーザの心の中では怒りが沸き立つという。
さりとて、初回起動時はサウンド無効になっててもそれはそれで問題が。アプリを遊んでいたユーザが、あるとき、サウンド設定があることに気づく。当然ユーザは思う。「なんだよ…。音が鳴るなら最初から鳴らしとけよ。このクソアプリが!」
さて、初回起動時のサウンドは、有効がいいのか。それとも無効がいいのか。どっちなんでしょう。
などと書いた後で、初回起動時にユーザに尋ねればいいんじゃないかと気づいた。「サウンドを有効にしますか? YES/NO」みたいな。…問題は、そういう画面・シーケンスを今回入れちゃってもいいのかどうか、ということかもしれん。
このへん、家庭用ゲーム機にはなかった問題であるなと。家庭用ゲーム機はえてしてTVに繋いで使うものだけど。よもや、TVから音が出てこないと考える人は居ないだろう。…もしかすると、携帯ゲーム機も、携帯アプリと同様の問題を持ってるのかもしれない。そのあたり、各メーカはどんな仕様にしてるのだろう。
無効にしてたのは理由があって。以前友人から、「携帯ゲーム = 電車での移動時や何かの受付の待ち時間の暇つぶしにやることが多い」と聞いてたので、電車の中でDL・起動したらいきなり音が鳴り始めた、なんてのはマズイだろうと想像して。ていうか自分も、とある携帯アプリをDL・起動したら、タイトル画面で音楽が鳴り始めてビビった記憶が。夜中の3時なのに。隣の部屋では妹が寝てるのに。ちょっとちょっと困るんですよ。マジ困るんですよ。サウンド設定はどこよ。みたいな。
ユーザの心境を考えると、大体想像はつく。音が鳴り始めて、まずビックリする。サウンド設定を探すなり、イヤホン持ってればつけるなり、場合によってはアプリの終了キーを押してしまうかもしれない。その間、おそらくわずか数秒の話。が。その後、ユーザの中で、徐々に、ムクムクと、怒りが湧いてくる。「なんでこんなところで(or こんな時間に)鳴るんだよ! このクソアプリが!」みたいな。たった数秒、心沸き立つ軽快な音楽を鳴らしたが故に、ユーザの心の中では怒りが沸き立つという。
さりとて、初回起動時はサウンド無効になっててもそれはそれで問題が。アプリを遊んでいたユーザが、あるとき、サウンド設定があることに気づく。当然ユーザは思う。「なんだよ…。音が鳴るなら最初から鳴らしとけよ。このクソアプリが!」
さて、初回起動時のサウンドは、有効がいいのか。それとも無効がいいのか。どっちなんでしょう。
などと書いた後で、初回起動時にユーザに尋ねればいいんじゃないかと気づいた。「サウンドを有効にしますか? YES/NO」みたいな。…問題は、そういう画面・シーケンスを今回入れちゃってもいいのかどうか、ということかもしれん。
このへん、家庭用ゲーム機にはなかった問題であるなと。家庭用ゲーム機はえてしてTVに繋いで使うものだけど。よもや、TVから音が出てこないと考える人は居ないだろう。…もしかすると、携帯ゲーム機も、携帯アプリと同様の問題を持ってるのかもしれない。そのあたり、各メーカはどんな仕様にしてるのだろう。
[ ツッコむ ]
以上、1 日分です。