横スクロールさせたいのですが
投稿者 : 課題研究進まねー(proxy6-r.okayama-c.ed.jp)
- 2009/10/09(Fri) 13:50
No.12545
|
|
|
|
|
横スクロールのアクションゲームを作っています。
とりあえず自機の移動やジャンプ、落下などの移動方法はできるようになったのですが 肝心のスクロールが全然できません;;
できれば自機を中心にスクロールさせたいのですが、参考サイトを見てもよくわかりません。。。 というかまず、スクロールさせると背景だけが動きマップ自体は動いていません。 マップはマップチップを配置して簡単に作りました。 マップの作り方から間違っているのでしょうか? どなたか教えてください><
プログラム extends SpriteChar;
function draw(){ drawScreenXY(1); super.draw(); drawScreenXY(0); }
$map.setBGColor(color(0,200,255)); //背景色の変更
p=$pat_chara+0; anim=newAnimation();
while(1){ anim.pause(); if (getkey(39)>2) { //右のキーが押されたとき anim.swing($pat_chara+0,$pat_chara+2,12); //キャラクタのアニメーション if ($map.getAt(x+8,y)!=$pat_block+0) x=x+2; //右が壁でないなら右へ2ドット移動 f=1; //右を向く } if (getkey(37)>2) { //左のキーが押されたとき anim.swing($pat_chara+0,$pat_chara+2,12); //キャラクタのアニメーション if ($map.getAt(x-8,y)!=$pat_block+0) x=x-2; //左が壁でないなら左へ2ドット移動 f=-1; //左を向く } if ($map.getAt(x,y+16)==$pat_block+0){ //ブロックに当たった場合 vy=0; //落下速度を0にする if (getkey(32)==1) vy=-10; // スペースキーを押したらジャンプ y=trunc(y/32)*32+16; //y座標をブロックの上に移動する } else { //ブロックに当たっていなかった場合 vy+=0.5; //落下速度を上げる } if ($map.getAt(x,y-16)==$pat_block+0){ // ブロックが頭に来たら vy=1; // 上向きの力をなくし、下向きの力をつける } y=y+vy; update(); }
|
Re: 横スクロールさせたいのですが
投稿者 : イッカ!(p4253-ipbf2005hodogaya.kanagawa.ocn.ne.jp)
- 2009/10/09(Fri) 19:42
No.12546
|
|
|
|
//説明 マップのスクロールには
$map.scrollTo(sx,sy)
を使います。
このメソッドはsxにスクロールしたい点のx座標を、syにy座標を入れて呼び出すと、その点を左上として画面をスクロールするものです。
例)
while(1) { sx++; $map.scrollTo(sx,0); update(); }
画面を(1,0)を左上としてスクロール 画面を(2,0)を左上としてスクロール 画面を(3,0)を左上としてスクロール... というように右方向に少しずつスクロールします。
「自機を中心に」というのは自分で考えてみてください(´ω`*)
|
Re: 横スクロールさせたいのですが
投稿者 : 課題研究進まねー(proxy6-r.okayama-c.ed.jp)
- 2009/10/23(Fri) 09:56
No.12559
|
|
|
|
Re: 横スクロールさせたいのですが
投稿者 : 課題研究進まねー(proxy2.okayama-c.ed.jp)
- 2009/10/30(Fri) 11:14
No.12565
|
|
|
|
前にも書かせていただいたのですが、 マップをスクロールさせるとどうしても背景だけが動いてしまって配置したマップチップ動いていませんorz
見た感じではマップはちゃんとスクロールしてるように見えるんですが、マップチップの位置が変わってない状態です
原因が分からないので原因となりうるようなことを教えていただけませんか? よろしくお願いします
|
Re: 横スクロールさせたいのですが
投稿者 : イッカ!(p3173-ipbf3003hodogaya.kanagawa.ocn.ne.jp)
- 2009/11/08(Sun) 19:23
No.12575
|
|
|
|
かなり遅レスですが…。
>見た感じではマップはちゃんとスクロールしてるように見えるんですが、マップチップの位置が変わってない状態です
マップチップはスクロールしません、スクロールするのは画面のほうです。
|
Re: 横スクロールさせたいのですが
投稿者 : ロンド(fl1-125-197-70-26.iba.mesh.ad.jp)
- 2009/11/11(Wed) 12:02
No.12583
|
|
|
|
スクロールに違和感があるのなら function draw(){ drawScreenXY(1); super.draw(); drawScreenXY(0); } あたりが原因ではないでしょうか。 1つめのdrawScreenXY(1);の引数を0にすると動作が変わります。
ただ、状況がいまいち分からないのでプロジェクトの添付をお勧めします。
|
|