今回も、去年同様、2001年のNGW登録一番乗り^^)を目指して、ゲーム作成を考えた。
今回も野球ゲームネタを考えていたら、何やら選手会と機構側がもめ事。。。^^);;;
で、そういえば、もう冬だと思って、スキーやらなきゃ、からスキーゲーム作ろうに。^^)
ということで、スキーゲームを作ることに方向転換。
そこで一応、市場調査ということで、ネット上のスキーゲームなどをいろいろ見て回ったが、
どれも、スキーの醍醐味を感じられないものが多かったので、
やっぱ、スキーのエッジに乗り込む感じが大事だよなーーーー。
ってなことで、構想がまとまり。
まずは、スキーで滑る感覚に近づけるにはどうしたらよいか?
を考えた。
この回答が、マウスでドラグして、なおかつ、縦方向にドラグすることにより
ステップターンの要領でスピードが増して行くという考えにたどりつく。
そして、どうせやるなら、やっぱスラローム(回転競技)でしょ。でポール競技に。
あとは、実際にスクリプトで一歩一歩、試作して行くだけ。
今回は、NN6も期待に反して世の中に出ちゃったことだし、まあ対応しないとまずいかな。
ということで、NN6で作り出す。
さらに、クロスでIE4.0以上、NN4.x以上でも動かすため、基本部分のみのライブラリを作成。
このライブラリで大分作成が簡単になりました。^^)
はじめは、マウス操作のみを作り、次にポール表示を作り、ここまでは順調だったが。。。
ということで、これの詳細は以下の開発仕様&日記(?)に書き留めて作りました。
なお、現在のNN6(IE5.5も似たり寄ったりだが)は画像レイヤ操作が非常に甘いので注意ね。^^)
で、この仕様&日記(?)をhtmlソースの先頭に書いて行ったのは、
開発する上での一番のお勧めポイントです。
忘れずに覚えておけるし、進捗管理もできるし、
でいいですよ。^^)
以下、開発仕様&日記----------------------------------------------------------
●NN6のマウス制御テストプロを改造しだす。
●IE/NN4.xでも動くように修正。
●マウスをドラグしたときに、別の位置にある画像を動かす。
●マウスをドラグしてなくても、画像を左右に滑らせる制御を考える。
●マウスでステップターンを可能にする。
●NN6/IE/NN4.xのクロスで動くように、基本命令部分はライブラリ化。
●画面内に表示するポール管理(初めは画面内のドットで作成)を考える。
●ポールのセッティング配列を考える。
●ポール画像とスキー画像を作る。
●単純に比例計算でポールを動かしてみるが。→やはり正確にやらないとと挫折。^^);;;
●背景画像の撮影をスキー場(どこだか分かるかな?)で行う。
・ここで本業が忙しくなり、1週間手付かず。^^);;;;
●画面内ドット単位を諦め、実際のメートル単位のポールを画面上に写像する制御を考える。
●ゴール表示制御を考える。
●ポールに激突/旗門不通過の判定を考える。
●背景画像を表示する。
×左右の背景画像を表示する。→これ無しでも十分なので省略。
●雪面画像を表示する。→ただし、背景までは動かせないですが。^^);;;
●ゴール左板、右板画像作成&表示させる。
●NN4.xは、画像のリサイズが出来ないので、強引にdocument.writeでやったが、遅くて諦めた。^^);;;;
●最初に名前を入力してもらう。
●ゲーム開始ボタンを押すと、既に表示してある不要なものを消去し、
●xxxxさん準備OKと掲示板に表示。
●10秒前で、「10秒前」を1秒間、掲示板に上書き表示。
●5秒前に長いブザーを掲示板に表示させ。
●3秒前から1秒毎にブザーを表示させていく。
●3秒前ブザーから以後、マウスdownしたら、自動的にスタートとなる。
●3秒以前にマウスdownしても、無視する。
●スタートしたら、その時の時間を計測する。
●ところがNN6は、スタートしたらポールが一瞬消える。動きもぎこちない
●一瞬消えるのは、FDからアクセスすると遅いようだ。HDからではOK。
●ぎこちなく、マウスが禁止マークになり、ドラグしなくてスキーもついてくるようになる。
→IE5.5対策と同じで、backの画像があるとおかしくなる。でbodyタグの背景にしたら、OKになった。
ただし、ジオだとページTOPにバナー表示があるのが辛い。仕方なく背景画像を下にバナー分ずらした。
●さらにNN6は、ドラグ中に旗門不通過か転倒で、ボタンが効かない。
→ドラグ開始位置に画像があり、ドラグ中にこの画像を非表示にすると、マウスイベントが発生しなくなる。
→したがって、消さなければOKだが、それだと画像が重なるので、画面外へ退いてもらうことに。
●今度は、IE5.5でスタートしたら、ドラグ中は全く画面が動かなくなる。
●背景に画像をレイヤで表示しているとマウスイベントが来ない為、遅くなる。→対策:背景をBODYタグのBACKGROUNDで指定する。
●ゴール板を切ったら、その時の時間を計測する。
●転倒時の画像作成&表示&確認後、ゲーム初期状態にする。
●旗門不通過時の画像作成&表示&確認後、ゲーム初期状態にする。
●画面が止まったら、ゴールの文字をグラディエーションしながらビューンと表示させる。
●自作スキンで画面の左上にタイムを表示する。(→あっ、これ秘密!!)
・変数にgm_GRS_X_skin_newgameweb(NGWのロゴ画像URL)を追加。
・新着、↑、↓の画像名をgm_GRS_X_skin_img_xxxとした(xxx=new,A,D)。
・GRS_X_skinimg_pathをゲームページから指定可能にした。
・タイトルを表示可能にした。
・自分のタイムが上位3名(または指定数)内になければ最後に表示するようにした。
●競技レベルを追加する。
●最高タイムをランキング登録するボタンを作成。
●それなら、最高タイムと滑ったタイムも表示する。
●なお、ゲーム開始ボタンを押したら、右上のタイムは消す。
●ゲーム用ポールを50個(多いか?)セッテング&最終調整。
●入力面倒なので、画面上でセッティングさせるツールを作る。
●これできるなら、インスペクション表示は簡単に出来たので追加。
●バックミュージックを付ける。なかなかスキーのテンポに合うフリーmidiが少ないですね。
・バグ:
●1)IEで旗門不通過時、×画像が表示されない。→なんか突然直った。
●2)自作スキン表示させると、メッセージが出ない,掲示板文字が細くなり、ゴールの文字も小さくなる。
原因:NN4.xだと、TABLE内にSPANでstyle属性を指定すると、以後styleが無視されてしまう。
対策:font,bタグでセル毎(IEはセル毎でないと無効)に文字色、サイズを指定する。
●3)IEで新着クリックで「数字を指定してください」のエラー → シュミレーションスキンモジュールの方でおかしいようだ。
●4)ポールが10個目でオブジェクトがないでエラーになる。→スタックの不等号の間違い。^^);;;
●5)ゴールしたら旗門不通過???とは、とほほ。→単なるセッティングツールのバグでした。
●6)NN4.xでインスペクション表示のスタート・ゴール文字にstyleが無視される。→単純な文字指定ミス。
●7)Web上でテストしたら、なんとNN6は、マウスダウンとともに、ポールがみんな消えてしまった。^^);;;
確かにFDアクセスでは一瞬消えていたが、Web上でも同じとは。で、この原因調べが非常にてまどった。
結局原因は、画像の幅、高さを変更すると、画面上の位置により消えてしまうようだ。
この位置が難しく、スクロールバーが出るような状態だと発生しやすい。
ということで、画像でなく、文字領域の背景色で代用。
●今回のbagzilla(Mozillaのバグ)登録件数:2件でした。ダハハ^^);;;;
Mozillaのバグ:修正した。
画像消える
で、今回のゲーム名称は、回転競技なので、
まあ大会ということで、スキー大会だ、xxxカップ杯なんてあるので、
それを真似て、「BayStars Skier's CUP スキー回転競技大会」とした。
で、開発秘話で投稿したものがNewGameWebメールマガジンにあります。