|
extends SecretChar;
Hosi=new Panel(); //パネル(背景)の作成 使い方はやや特殊
Hosi_p=$pat_item+13; //パネルの元画像 ※standardクラスの変数
Hosi_sc_speed=2; //値が大きいほどゆっくりスクロールする ゼロは不可
Hosi.resize($screenWidth,$screenHeight); //最低でもウィンドウサイズより大きくする
//Hosi.drawDxSprite(Hosi.width/2,Hosi.height/2,Hosi_p,0,0,Hosi.width/getPatWidth(Hosi_p),Hosi.height/getPatHeight(Hosi_p));
for(_x=0;_x<$screenWidth;_x+=getPatWidth(Hosi_p)){
for(_y=0;_y<$screenheight;_y+=getPatheight(Hosi_p)){
Hosi.drawDxSprite(_x+getPatWidth(Hosi_p)/2,_y+getPatheight(Hosi_p)/2,Hosi_p,0,0,1,1);
}
}
//パネルに画像を貼り付ける
//連続表示して埋める
Hosi.zOrder=301;
Hosi.alpha=150;
while(1){
Hosi.draw($viewX,$viewY,$screenWidth,$screenHeight,($viewX/Hosi_sc_speed)%Hosi.width,($viewY/Hosi_sc_speed)%Hosi.Height);
//ヘルプに詳細が載ってないメソッド
//第1、第2引数は表示先(画面)の左上座標
//第3、第4引数は表示する範囲
//第5、第6引数は表示元(パネル)の左上座標
update();
}
こう自分のゲームに合うようにました。
でも、マップスクロールがマイナスのときは背景が表示されません
バグでしょうか?
それとも↑のプログラムが悪いんでしょうか?11-09-23 15:23 by
kazz
|
|
[Ver0.4]マップの裏に背景を描画します。
背景はマップのスクロールに合わせてスクロールします。
背景は無限にスクロールできます。06-06-08 22:17 by
fumo
|
|
[Ver0.2]テキストファイルからマップデータを読みこんで配置します。
マップデータは、Tonyuから作ります。
こういった、ライブラリ、サンプルがないので作りました。
ポイントは、2バイトまでのパターン数に対応しているところ。
無駄やバグがあったら教えてください。
アップロードミスがありました。
st_2byte()メソッドは使ってないのでいりません。
以下の行もいりません。
//a.writeStr(st_2byte($map.get(i,j)));
マップチップサイズは実行時に$map.pwidthと$map.pheightに代入されますね。
これらの変数を使えば、map_yoko_nb,map_tate_nb変数を使う必要はありません。
それから、マップデータ読み込み時に配列にデータを代入せず、直接$map.set()メソッドを使うとよいです。
06-06-02 20:50 by
fumo
|
|
RPG等で、ページ数を増やさずに複数のマップを作りたい、
という状況は結構あるので、そんなときに使えそうです。
データの保存形式を、”,”で区切る等ではなく、バイトデータを保存する形にしている点が、
上手いと思いました。
06-06-09 14:43 by
アカシン
|
|
バイトデータに関して、解説に256進数とか書いてますけど、
書いてる時点で256進数なんだと気づきました^^;
最初はとにかくデータを文字列化することだけ考えてました。
書くときはxx.writeStr()をして、読むときはnew string(xx.read())をしてました。
そして解説書いて、なにか2度手間してるような気がして、書き直して・・・
xx.write(256)のように255より上の値を引数にしても、2バイトで書き込まないですね。
もしかして、ここらへんをxx.write(),xx.read()が勝手にやってくれるんじゃないか、と思って、
自分がやってきたことは全部無駄になるんじゃないかと焦ったりもしました^^;
06-06-09 21:00 by
fumo
|
|
なるほど、色々試行錯誤があったんですね。
そういう試行錯誤は、絶対に自分の力になりますよ。
このマップデータ保存、読み込み機能を起点にして、
マップに対し、さまざまな処理を行うライブラリを作っていけたら
面白いかもしれません。
06-06-10 22:37 by
アカシン
|
|
マップデータに関しても、引き続きアップしていく予定です。
背景のスクロールに続き、またちょっと違う趣向になりますが、
マップの縮小を次にアップする予定です。
Tonyuのツールのサテライトのようなものです。
06-06-11 01:50 by
fumo
|
|
256以上の数値を保存する方法です
write(trunc(スコア/256/256);
write(trunc(スコア/256);
write(スコア%256); 06-06-28 20:47 by
LefTonbo
|
|