忍者ブログ
ADMINNEW ENTRY
C A L E N D A R
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

HP→http://sora-blue.net/~kuar/index.html
No.287 No.286 No.285 No.284 No.283 No.282 No.281 No.280 No.279 No.278 No.277
2024-04-25(Thu)
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2008-12-06(Sat)
無題
ここまでの頑張り。
ソース
アプリ
ソースだけみても嫌になるね。それなりのエディタで開かないとわけわかめだぜ
グラフィックのところはメゾット分けできないらしいのでできるだけプログラムを圧縮してやらないとスパゲッティになっちまうぜ。半ばなってるけど。
オブジェクト指向ならなんとかしてくれるらしい(?)
キャラ描写は多次元配列にしてやればifが不要になって1行で済みそうだ

g.drawImage(Chara[立っているor走っている(もしくは攻撃等)][何番目の画像か(主にアニメーション)],x,y,this);

こういう感じで

しかしこのままいくと色々とまずいことが起きそうだ。。
タイマーを使わないとだめくさい?全てが同時進行だからなんとかしないと
移動はキーボード操作ならだいぶ楽なんだけどあえてマウスで動く形にした。
ってもキャラは動かず動くのは背景のほうだけど。
背景画像は最小でも5000くらいないとだめっぽいな。狭すぎる
PR



・C O M M E N T
  • この記事へのコメント投稿フォームです。


  • Name:
    Title:
    Mail:
    Url:
    Color:
    Decoration:
    Vodafone絵文字 i-mode絵文字 Ezweb絵文字
    Message:
    Pass:
    ※編集時に必要です。

    ・無題
    ドデカい背景を一枚用意して……ってのは
    ギャルゲエロゲなら普通だが、動きまくるゲームでは向かんぜよ

    むしろ
    var x=[]; // マップx軸配列
    var y=[]; // マップy
    var width = 800; // 画面そのものの横のデカさ
    var height= 600; // 同上(縦)
    for(var i=0; i<width; i++) x[i]=0;
    for(var i=0; i<height; i++) y[i]=0;
    みたいな感じでx軸とy軸を1ドット単位(あるいはもっとデカい : 32ドットくらいのブロック単位とか)で区切る配列を用意して、
    キャラの動きを検出したらfor文ぶん回して
    1ドット(or ブロック単位)で書き換えるみたいなパワフル処理が結構普通じゃね?
    背景を『1枚の大きな絵』ではなく
    『数ドット程度の小さな絵の集合体』として捉えるっていう、一種のパズルピースみたいな考え方よなー

    画面の更新処理なんかは、タイマー使わずにonMouseDownハンドラ(javaに有るのかしらねーが)とかに引っ掛けておけば
    『マウスが押されたときだけ更新する』みたいな処理になって大変よろしいんじゃないかしら。

    TRACKBACK
    • この記事のURLとトラックバックURLです。
    • 必要に応じてご使用くださいませ。
    この記事のURL▽
    この記事のトラックバックURL▽
    No.287 No.286 No.285 No.284 No.283 No.282 No.281 No.280 No.279 No.278 No.277

    Powered by NinjaBlog. Template by うさねこ.
    忍者ブログ[PR]