2009年05月10日

久々にドラクエっぽいので遊ぶ

せっかくの休日なのでドラクエっぽいので遊ぶ。今週末は原稿書かないといけないので、逃避魂に火がつきました。点火。

やったこと
・オープニング画面
・50音パレットによる名前選択(空行飛ばし処理未実装)

http://www.mwsoft.jp/sandbox/dqp/opening.html
※IE8, Firefox3, Chrome1, Safari3.2で動作確認。


オープニング画面は音声と連動させようとしたけど無理そうなので、下に出る歌詞(?)と連動。これでFirefox等で音楽再生がどうたらという問題も解決。たぶん。

点滅したカーソルを動かす際の実装がイマイチ綺麗に出来ず動きが悪い。IEの表示ズレさえなければ簡単に速度上げれるのだけど。普通にwitdhとheightとpaddingとborderを指定しただけのブロック要素で、なんでIEだけ幅が変わってしまうのだろう。

共通化して役に立ちそうなライブラリにできそうな処理がちらほら。まぁ、WEBで50音パレットは使わないだろうけど。
posted by MW at 02:10| Comment(3) | TrackBack(0) | ドラクエっぽいヤツ | このブログの読者になる | 更新情報をチェックする

2009年01月08日

【どうでもよい系】あっさり速度改善

例のヤツ。簡単に速度改善出来ることに気づく。なんでこんな簡単なことに気づかなかったのだろう……

頻出画像を背景としてリピート表示すれば、その画像についてはIE6でもLoad1回で済む。imgタグの生成・削除のコストも減る。他の画像も大きなブロックはDIVの背景として描画すれば、もう少し速度上げれそう。ロジック(というか設定)が面倒だけど。

http://www.mwsoft.jp/game/dqp/20090107/dqp.html

ああ、もう2時半だ。ついさっき投稿した記事に、「いらんプログラムを組んで寝不足になるの禁止」みたいなこと書いたばかりなのに……
posted by MW at 02:38| Comment(0) | TrackBack(0) | ドラクエっぽいヤツ | このブログの読者になる | 更新情報をチェックする

2009年01月06日

【どうでもよい系】進捗ほぼなし

例のヤツをうちのCelleron機(2GHz)のIE6で動作させてみたら酷いスピードだったので、パフォーマンス改善できないか確認。開発自体はクアッドコアとかいう上等なもの積んだ子のFireofxでやってるので、遅い子のIEで見るとそれはもう愕然とする。Celleron機でもFirefoxで見れば耐えられるスピードなんだけど。

全ての画像をasboluteで配しているのを、floatで一行配置した後に、それを囲んだdivでずいっと移動という形にしてみる。floatの方がnativeな配置だから早くなるかと思ったが、結果は惨敗。

positionを持ってくところではなく、普通に画像を何百枚も描画するのにかかるコストが問題な様子。ていうか、同じ画像を1回ずつLoadしてやがりますね。使用する画像を全部下の方に表示して、画像も含めて全部onloadを通知したら描画スタートということもやってみたのですが、結果は変わらず。ぬう。

IE7の方は同じ画像は1回Loadに留めてくれている様子。ただ、街や城に入る際の動作が重い。F5押した場合より城を出た方が時間がかかるということは、非同期通信の結果を待ってるところが問題か。もしくはElementをRemoveしてるところも危険そう。

非同期通信が問題であれば、画面表示フィールド内の街や城のマップ情報を先読みすれば、なんとかなる。ElementのRemoveが問題の場合は、固定数の画像に対して、src指定を切り替える形にする方法が思いつく。けど、srcの中身変えた時の反応が各ブラウザイマイチ遅い。IEは特に遅い。

それから、キー押下があった際に、Activeになってるウィンドウ(フィールドか、メニューか、メッセージか、どれに命令送るか)を判定させるロジックとして、Activeな要素にactiveという名前のクラスを配置する方法を試してみる。コード的には格好良かったのだけど、結果は惨敗。予想はしていたけど、連打に対して全然弱かった。

やはりそこは変数で判断するとして、キーイベントでころころ値が変わることを考えると、syncronized的なことをしたいのだけど、Javascriptではどうやるのだろう。最悪、セマフォっぽくすればいけるか。


http://www.mwsoft.jp/game/dqp/20090105/dqp.html

※基本、昨日と何も変わりなし
※描画をfloatにしたけど、差はないと思う
※試しに下の方で画像先読みしてるけど、やはり差はないと思う
※Xボタンを押すとメニューが出て、そのまま動かなくなる
posted by MW at 02:09| Comment(0) | TrackBack(0) | ドラクエっぽいヤツ | このブログの読者になる | 更新情報をチェックする

2009年01月04日

【どうでもよい系】仕事終わった!

冬期休暇(?)を1日残して手持ちの仕事を終わらせました。よくやった、俺。凄いぞ、俺。と、自分を自分で褒めないと立ち上がれないことがあります。自分を無理に立ち上がらせる方法なら、たくさん知ってます。

さて、今日のドラクエ。

・城と街に入れる機能を復活させました
・キャラクター動作方法をいろいろ検証するも、良い方法見つからず

http://www.mwsoft.jp/game/dqp/20090104/dqp.html

※IE6, IE7, Firefox3, Chrome1, Safari3.2で動作
※Operaは対応してません(キーイベント殺せてない。優先度低)
※IE6だとキャラクターが透過されません(透過png未対応のせい)


図らずも、ブラウザの速度を検証するという用途に向いてるスクリプトになった気がします。IEの可哀想になるくらいの遅さはさておき、Firefoxもけっこー遅いです。Chromeの速さはさておき、Safariもけっこー速いです。
posted by MW at 01:36| Comment(0) | TrackBack(0) | ドラクエっぽいヤツ | このブログの読者になる | 更新情報をチェックする

2009年01月03日

【どうでもよい系】時間が余るとこうなる

昨日、真面目に働いたお陰で、仕事の進み的には少し余裕ができた。そう思った瞬間に、私の手はドラクエっぽいヤツに向かっていた。

そして気が付けば、現在、午前7時。午前1時過ぎに始めたのだけど、見事にタイムスリップしてしまった。恐るべし、無駄なプログラム。

とりあえず、今回やったこと。

1. EclipseのJavaScriptプラグイン導入(JsEclipse)
2. フィールドの書き方を変えて、IEでも表示できるように
3. 絵の見た目を少しまともにする
4. script.aculo.usで少し動きをつけてみる

IE対応なんていう、途中で挫折すること請け合いな作業をしてしまったせいで、モンスターは出なくなるし、城にも入れなくなったりと、機能的には後退した。おまけにアニメーション的な動きをしようとしたら、逆にぎこちなくなった気も。でも、ソースは綺麗になった。


というわけで、現物
http://www.mwsoft.jp/game/dqp/20090103/dqp.html
※IEでも一応動きます
※勇者がフィールドをうろうろするだけの機能です
※ちょっと重いです


キーを押しっぱなしにして上下左右に動かした時の挙動がぎこちない。keyDownイベントの発生タイミングの問題なんだけど、アニメーションの為にキーロックしてる時間の最後50ミリ秒に来た命令をキャッシュして実行するとかすれば、多少は滑らかになるかな。
posted by MW at 07:07| Comment(0) | TrackBack(0) | ドラクエっぽいヤツ | このブログの読者になる | 更新情報をチェックする

2008年12月23日

【どうでもよい系】メニュー付けた

今日はIE6での表示について考える。IE6とFirefoxの両立をしようとすると、出来なくはないけどいろいろ面倒。position:fixed1つ取ってもいろいろあったり、キーイベントの違いもけっこう厳しい。

じゃあ、IE6+7をメインで作るかと考えると、それもできない。IE6+7はいずれ過去の遺物になるということと、あと、すいません、秘密にしてきたけど実は私、Firefox信者なんです。あー、知ってましたか。そうですか。

あと、Operaで試したら、表示はできるけど動きが怪しい。どうやらキーイベントの無効化がうまくいってない様子。Safariだと画像がちゃんと消えきらない現象が発生した。やっぱ、フィールドのやり方が強引過ぎたか。テーブルで書き換えるとかじゃなく、透過画像をabsoluteで配置する方法で書き直すか。

目標は「IE8, Firefox3, Chrome1, Safari3」の4つに対応。当面はFirefoxとSafari(合計シェア20〜25%くらい)で動くことを目指したい。

■やったこと
xでメニュー表示
zでメニュー非表示
4秒間待つと、ステータス表示
スライム復活(動きは変わらない)

http://www.mwsoft.jp/game/dyq/20081223/field.html
posted by MW at 23:26| Comment(0) | TrackBack(0) | ドラクエっぽいヤツ | このブログの読者になる | 更新情報をチェックする

2008年12月21日

【どうでもよい系】飽きずにどうでもいいもの

引き続き無駄なものと相対して、約6時間。けっこう根詰めてやった割に、裏側の整頓とかしてたので見た目はあまり変わりません。

■今日やったこと(見える部分)
・城とか町に入れるようにする
・城とか町から出れるようにする
・デバッグ時に邪魔だったから、一時的にスライムには消えてもらう

■今日やったこと(見えない部分)
・json.jsとjson2.jsの違いを観察
・JQueryとprototype.jsで、両方コードを書いてどっちを使うか悩む
・フィールド関連の処理をクラス化
・フィールドデータをJSON形式にして、Ajaxな感じの取得に

■現物
http://www.mwsoft.jp/game/dqp20081221/field4.html
※1 相変わらずFirefox推奨、IEは無反応
※2 相変わらず職場で見るのは非推奨


フィールドはこのロジックでだいたい良いかなと思ってます。フィールドが広がり過ぎた時のパフォーマンスとか、キャラクターの透過処理とか、画像の先読みサボってるとか課題は残ってるけど、その辺はもう少し作りこんでからやる予定。次は戦闘かメニューかNPC辺りに手を付けようかと。

あと、マルチスレッド的な動作とか、エラー時の逃げ道とか、全然考えれてないのが怖い。最悪、現在のステートでリロードする機能付けて逃げてもらう感じだろうか。エラーはちゃんとcatchしないとなぁ。


さて、現実逃避はほどほどにして、そろそろ仕事します……
あー。もう21時近い。朝からコーンフレークしか食べてない。とりあえずご飯食べよう。えーと、今日は頼まれてるメール送信プログラム作って、知り合いに作ってもらったコードの動作検証して、あー、請求書忘れてた……。あー、現実こわい……。
posted by MW at 20:49| Comment(0) | TrackBack(0) | ドラクエっぽいヤツ | このブログの読者になる | 更新情報をチェックする

2008年12月19日

【どうでもよい系】続どうでもよいもの

今日は少し早めに帰宅できた。ので、2時間弱、どうでもよいものと触れ合った。コードネームは、どうでもよいクエスト、略してDYQ(ダイク)。

年末に向けて仕事が溜まっている気もするのだけど、とりあえず、そういうものからは目を逸らして生きていこうと思う。現実はいつだって過酷だから。


今日はもちろん、彼を出しました。戦うまでには全然至らず、現れて去っていくだけです。1歩ごとに20分の1のランダム判定して出してます。すぐ出たり、ずっと出なかったりするので、出会いたい人は気長に歩いてください。

なんかsetTimeout内でinnerHTML設定した時のChromeの反応が悪い。何か記述ミスってるかな。他のブラウザも見てみてイマイチだったらinput textにしないとかもなぁ。

あと、フィールド広くして、スクロールバー消して、矢印キーイベントを奪って、ポジションに応じて独自スクロールみたいなことしてみた。こっちも、Chromeのonload時の動きがイマイチ。Ajaxの敵はやはりブラウザ依存ですね。

アイイー? ソレハ ブラウザ デスカ?
ヒョウジ スラ シヤガリマセン

まぁ、ある程度ロジック固まったら、少しは考えようかと思います。


というわけで、現物。
http://www.mwsoft.jp/game/dqppoi20081219/field3.html
※1 より職場で見づらい内容になりました
※2 Firefox3で見ることをオススメします。


なんか頭がフラフラするので、今日はこれで寝ます。フラフラ。
posted by MW at 00:34| Comment(0) | TrackBack(0) | ドラクエっぽいヤツ | このブログの読者になる | 更新情報をチェックする

2008年12月18日

【どうでもよい系】どうでも良いものを進化させてみた

とりあえず、昨日の路線を引き継いで、どうでも良いものを正常進化させてみた。ボコスカウォーズにするつもりが、なんとなくドラクエ1っぽくなった気がする。歩かせていると、今にもスライムが出そう。


http://mwsoft.jp/game/dqppoi/field2.html
※1 職場で見るには不向きなページです
※2 Firefox3とChromeで動作確認。IEではピクリとも動かない。。。


使えるボタンは、4方向の矢印キーのみです。Javascript側でテーブルにtrとtdをaddして、それぞれのセルに設定した絵を表示させてます。
posted by MW at 01:06| Comment(2) | TrackBack(0) | ドラクエっぽいヤツ | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。