マップチップ
投稿者 : mmm(softbank219055097076.bbtec.net)
- 2011/02/28(Mon) 23:15
No.12861
|
|
|
|
|
$map.set()でマップチップを変更しようと思っています。 if($map.getAt(x,y+9)==$pat_bl+6){ $map.set(x,y+9,$pat_bl+7); $map.set(x,y+9,$pat_bl+8); $map.set(x,y+9,$pat_bl+9); } と書いたのですが画像が切り替わりません。 途中にprint(a)を入れて確かめてみて、 if文の中に入っていることはわかったのですが、 $map.setが働いていないのでしょうか。 使い方を間違っているのでしょうか。 上の文はwhile文の中に入っています。 お願いします。
|
Re: マップチップ
投稿者 : natu(pl670.nas932.p-iwate.nttpc.ne.jp)
- 2011/03/01(Tue) 07:31
No.12862
|
|
|
|
座標の扱いが異なるのでしょう。 $map.get と $map.getAt を見比べれば分かると思います。
|
Re: マップチップ
投稿者 : mmm(softbank219055097076.bbtec.net)
- 2011/03/01(Tue) 19:26
No.12863
|
|
|
|
確かにそうですね。 $map.setだとマップチップひとつで1ですが $map.getAtだとマップチップひとつで16ですね(ひとつ当たり16ドットのとき)。 じゃあ自分のいる位置のひとつ下のブロックのマップパターンを変えるにはどうやったらいいでしょうか。
(これって質問二つですか?二つだったら別に分けます)
|
Re: マップチップ
投稿者 : mmm(softbank219055097076.bbtec.net)
- 2011/03/01(Tue) 19:49
No.12864
|
|
|
|
事故解決しました。 x,yを自キャラの幅で割ればよかったんですね。
|
Re: マップチップ
投稿者 : mmm(softbank219055097076.bbtec.net)
- 2011/03/02(Wed) 22:51
No.12865
|
|
|
|
Re: マップチップ
投稿者 : リセッタ(em114-49-174-176.pool.e-mobile.ne.jp)
- 2011/03/08(Tue) 00:58
No.12874
|
|
|
|
自己解決みたいですが、一応プログラムを…
Ver. 1.24用 function mapAtX(x) { return floor(x/$map.pwidth); } function mapAtY(y) { return floor(y/$map.pheight); } function mapSetAt(x,y,p) { $map.set(mapAtX(x),mapAtY(y),p); }
# $map.pwidth,$map.pheightは、[マップ作成]ダイアログで # 「1パターンの大きさ(横/縦)」で設定した値です。 # ちなみに「横/縦方向パターン数」は、$map.width,$map.height # 但し、ヘルプに載ってないから、Ver.が変わると動作するか保障できないよ
# Kernelフォルダ以下に各オブジェクトのソースが… # 書き換えると動かなくなるから、自己責任で # mapオブジェクトは Kernel\Map\Map.tonyu
|
Re: マップチップ
投稿者 : mmm(softbank219055097076.bbtec.net)
- 2011/03/09(Wed) 19:52
No.12878
|
|
|
|
>>$map.pwidth,$map.pheightは「1パターンの大きさ(横/縦)」で設定した値
へえ、そんなのがあったんですか。知りませんでした。 ヘルプ(チュートリアル)に載っていないのって結構ありますよね。
|
Re: マップチップ
投稿者 : リセッタ(em114-48-179-214.pool.e-mobile.ne.jp)
- 2011/03/10(Thu) 02:18
No.12880
|
|
|
|
うんうん 沢山有るよね~
# ところで、関数を載せた理由 # マップに指定したパターンの大きさが # 必ずしも、自機と一致するとは限らない。 # また、SpriteChar,DxCharaのgetWidth(),getHeight()は # crashTo()用に実際のパターンより小さめの値が帰る為 # 正確な値を求めるには、getPatWidth(),getPatHeight()が必要 # こんな感じ?
function getPwidth() { return getPatWidth(p); } function getPheight() { return getPatHeight(p); }
|
Re: マップチップ
投稿者 : mmm(softbank219055097076.bbtec.net)
- 2011/03/10(Thu) 23:06
No.12883
|
|
|
|
>>マップに指定したパターンの大きさが必ずしも、自機と一致するとは限らない。
それはそうですよね。 僕の作っているゲームだと主人公とマップチップのドットが 同じなのでその感覚で書いてしまいました。
|
|