トップページgamedev
50コメント21KB

斜めスクロールが出来ないぞゴルァ!

■ このスレッドは過去ログ倉庫に格納されています
0001厨房似非PG01/11/16 15:46ID:???
//変数宣言
LPDIRECTDRAWSURFACE lpPrimary; //基本サーフェス(画面表示と同じもの)
LPDIRECTDRAWSURFACE lpBack; //バックバッファサーフェス(描画対象と同じもの)
LPDIRECTDRAWSURFACE lpSc;
DDCOLORKEY ddck;
LPDIRECTDRAW lpDDraw;

POINT ptBase; // スクロール基準点
void Draw(void) //メインルーチン
{
//変数宣言
static int i;
static int j; //アニメーションフラグ
static int x,y; //座標の設定
static int size=32; //拡大縮小用変数
static int sc,sc2;
RECT Scrrc={0,0,640,480}; //画面のサイズ
RECT Charrc[]={{0,0,64,64}, //BMPの座標を指定する
{64,0,128,64},
{128,0,192,64}};
// 左エリア
if( ptBase.x > 0){
// 左上
if( ptBase.y > 0){
SetRect( &Scrrc, 0, 0, ptBase.x, ptBase.y);
lpBack->BltFast(ptBase.x,ptBase.y,lpSc,&Scrrc,DDBLTFAST_NOCOLORKEY|DDBLTFAST_WAIT);
}
// 左下
if( ptBase.y <= 640){
SetRect( &Scrrc, 0, ptBase.y, ptBase.x, 480);
lpBack->BltFast(ptBase.x,ptBase.y,lpSc,&Scrrc,DDBLTFAST_NOCOLORKEY|DDBLTFAST_WAIT);
}
}
// 右エリア
if( ptBase.x <= 640){
// 右上
if( ptBase.y > 0){
SetRect( &Scrrc, ptBase.x, 0, 640, ptBase.y);
lpBack->BltFast(ptBase.x,ptBase.y,lpSc,&Scrrc,DDBLTFAST_NOCOLORKEY|DDBLTFAST_WAIT);
}
// 右下
if( ptBase.y <= 480){
SetRect( &Scrrc, 0, ptBase.y, ptBase.x, 480);
lpBack->BltFast(ptBase.x,ptBase.y,lpSc,&Scrrc,DDBLTFAST_NOCOLORKEY|DDBLTFAST_WAIT);
}
}
//ウェイト処理
static DWORD Nowtime,Prevtime;
Nowtime=timeGetTime();
if((Nowtime-Prevtime)<WAIT)return;
Prevtime=Nowtime;
lpPrimary->Flip(NULL,DDFLIP_WAIT);
}
0018名無しさん@お腹いっぱい。01/11/17 00:38ID:???
>>17
改良ですか?
全部作りなおしでは駄目ですか?
0019名無しさん@お腹いっぱい。01/11/17 00:57ID:???
>>14そうです。半年悩んでます。

みなさま糞スレ立ててすみません。ってか生きててすみません。
0020名無しさん@お腹いっぱい。01/11/17 00:58ID:???
多分斜めスクロールが完成するまで延々とこの手のスレが立つと思います。
00211501/11/17 01:04ID:???
というか、したらばでやり方散々書いたんだよ!
今見たら全部消されてるし・・・確かしたらばってスレ立てたやつがレス消せるんだよな・・・
っておい!
0022名無しさん@お腹いっぱい。01/11/17 01:14ID:???
仕方ないからもう一回書いてやれよ。
0023名無しさん@お腹いっぱい。01/11/17 01:50ID:???
つまりここの1はネタなわけですね
0024名無しさん@お腹いっぱい。01/11/17 02:28ID:B9jLKAU+
LPDIRECTDRAWSURFACE lpPrimary;
LPDIRECTDRAWSURFACE lpBack;
LPDIRECTDRAWSURFACE lpSc;

POINT pt;

void Scroll(void)
{
 RECT rect;

 if(pt.x<0){pt.x+=640;} else if(pt.x>639){pt.x-=640;}
 if(pt.y<0){pt.y+=480;} else if(pt.y>479){pt.y-=480;}

 if(pt.x!=0){
  SetRect(&rect, 0, 479-pt.x, 640-pt.x, 480);
  lpBack->BltFast(pt.x, 0, lpSc, &rect, DDBLTFAST_NOCOLORKEY|DDBLTFAST_WAIT); }

 if(pt.y!=0){
  SetRect(&rect, 639-pt.x, 0, 640, 480-pt.y);
  lpBack->BltFast(0, pt.y, lpSc, &rect, DDBLTFAST_NOCOLORKEY|DDBLTFAST_WAIT); }

 SetRect(&rect, 0, 0, 640-pt.x, 480-pt.y);
 lpBack->BltFast(pt.x, pt.y, lpSc, &rect, DDBLTFAST_NOCOLORKEY|DDBLTFAST_WAIT);
 SetRect(&rect, 639-pt.x, 479-pt.y, 640, 480);
 lpBack->BltFast(0, 0, lpSc, &rect, DDBLTFAST_NOCOLORKEY|DDBLTFAST_WAIT);

 lpPrimary->Flip(NULL,DDFLIP_WAIT);

 pt.x++; pt.y++;
}
00252401/11/17 02:29ID:B9jLKAU+
ゲ制作技術板は何もしないと不評だから、一応書いてみた。
>>1がネタでもな。

やり方は、>>13が言ってるのと同じ。
作業用サーフェス全体に背景を置いておいてバックバッファにずらして転送。
ただし、背景絵が上下左右で繋がってないと変に見えるけど。
背景の(0, 0)が表示画面の(pt.x, pt.y)から表示されるてわけ。

関数Scrollを呼び出すたびに少しづつずれて表示される。
最後のpt.xとpt.yのインクメント/デクリメントをいじればスクロール方向や速度が変えられる。

メインループからでも適当な間隔で呼び出してもらえれば斜めスクロールすると
思うけど、実際試したわけではないのでサンプルね。俺も暇だな。
0026名無しさん@お腹いっぱい。01/11/17 09:30ID:???
ファミコンで高速スクロールさせる時って、やっぱり水平帰線中に画面
切り替えたりして見かけのVRAM増やしてやるんかね
00271 ◆NVkNXezo 01/11/17 16:04ID:???
みなさまどうやら遂に斜めスクロールができました。
これで心おきなく逝けます。

    あ り が と う ご ざ い ま し た。
0028名無しさん@お腹いっぱい。01/11/22 15:07ID:???
| \
   |Д`) ダレモイナイ・・スルナラ イマノウチ
   |⊂
   |


     ♪  Å
   ♪   / \   ランタ タン
      ヽ(´Д`;)ノ   ランタ タン
         (  へ)    ランタ ランタ
          く       タン



   ♪    Å
     ♪ / \   ランタ ランタ
      ヽ(;´Д`)ノ  ランタ タン
         (へ  )    ランタ タンタ
             >    タン
0029(ε・∀・) フクミミ ◆qepgf.W2 01/11/22 15:10ID:???
ミチャッタ...
0030名無しさん@お腹いっぱい。01/11/22 15:10ID:???
| \
   |Д`) ダレモイナイ・・センデンスルナラ イマノウチ
   |⊂
   |


     ♪  Å
   ♪   / \   ランタ タン
      ヽ(´Д`;)ノ   ランタ タン
         (  へ)    ランタ ランタ
          く       タン



   ♪    Å
     ♪ / \   ランタ ランタ
      ヽ(;´Д`)ノ  ランタ タン
         (へ  )    ランタ タンタ
             >    タン
0031名前は開発中のものです。01/11/27 06:38ID:???
>>30
ミタヨ
0032名前は開発中のものです。02/01/22 04:07ID:a5Z5zbEJ
駄スレ保存
0033名前は開発中のものです。02/02/06 03:12ID:???
| \
   |Д`) ダレモイナイ・・センデンスルナラ イマノウチ
   |⊂
   |


     ♪  Å
   ♪   / \   ランタ タン
      ヽ(´Д`;)ノ   ランタ タン
         (  へ)    ランタ ランタ
          く       タン



   ♪    Å
     ♪ / \   ランタ ランタ
      ヽ(;´Д`)ノ  ランタ タン
         (へ  )    ランタ タンタ
             >    タン
0034名前は開発中のものです。02/02/06 03:12ID:???
| \
   |Д`) ダレモイナイ・・センデンスルナラ イマノウチ
   |⊂
   |


     ♪  Å
   ♪   / \   ランタ タン
      ヽ(´Д`;)ノ   ランタ タン
         (  へ)    ランタ ランタ
          く       タン



   ♪    Å
     ♪ / \   ランタ ランタ
      ヽ(;´Д`)ノ  ランタ タン
         (へ  )    ランタ タンタ
             >    タン

0035名前は開発中のものです。02/02/06 03:14ID:???
sage
0036名前は開発中のものです。02/03/03 10:26ID:???
| \
   |Д`) ダレモイナイ・・スルナラ イマノウチ
   |⊂
   |


     ♪  Å
   ♪   / \   ランタ タン
      ヽ(´Д`;)ノ   ランタ タン
         (  へ)    ランタ ランタ
          く       タン



   ♪    Å
     ♪ / \   ランタ ランタ
      ヽ(;´Д`)ノ  ランタ タン
         (へ  )    ランタ タンタ
             >    タン
0037名前は開発中のものです。02/05/06 20:32ID:???
霊スレだったの
0038sage ◆SAGEddng02/05/07 00:17ID:???
| \
   |Д`) ミチャッタ
   |⊂
   |


     ♪  Å
   ♪   / \   ランタ タン
      ヽ(´Д`;)ノ   ランタ タン
         (  へ)    ランタ ランタ
          く       タン
0039age02/07/03 23:34ID:???
▼゚Д。▼カフッ▼゚▼゚Д。▼カフッД。▼カフッ
0040名前は開発中のものです。02/07/04 00:10ID:???
>>1
ひでー書き方、才能ゼロ
0041名前は開発中のものです。02/07/07 14:20ID:???
この板の活発化のために打つべし! 打つべし!
0042名前は開発中のものです。02/07/07 16:53ID:???
♪    Å
     ♪ / \   ランタ ランタ
      ヽ(;´Д`)ノ  ランタ タン
         (へ  )    ランタ タンタ
             >    タン
     ♪  Å
   ♪   / \   ランタ タン
      ヽ(´Д`;)ノ   ランタ タン
         (  へ)    ランタ ランタ
          く       タン
   ♪    Å
     ♪ / \   ランタ ランタ
      ヽ(;´Д`)ノ  ランタ タン
         (へ  )    ランタ タンタ
             >    タン
     ♪  Å
   ♪   / \   ランタ タン
      ヽ(´Д`;)ノ   ランタ タン
         (  へ)    ランタ ランタ
          く       タン
   ♪    Å
     ♪ / \   ランタ ランタ
      ヽ(;´Д`)ノ  ランタ タン
         (へ  )    ランタ タンタ
             >    タン

| \
   |Д`) アゲンナカス
   |⊂
   |
0043名前は開発中のものです。02/10/18 09:27ID:???
  ハハハ
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ^∀^)<  このクソスレ立て逃げか!
 ( つ ⊂ ) \_________
  .)  ) )
 (__)_)     (^∀^)ゲラゲラ シネヤ クソガ
0044名前は開発中のものです。02/10/19 12:35ID:mctZE8GO
斜めスクロールにはブレゼンハムのアルゴリズムがイイage!!
0045名前は開発中のものです。02/11/06 20:32ID:???
             人ヾ
           / ゚o\
          (´Д`O )
           (⊃o⊂゚)              
             U U
    ______∧_______
    クソスレはちゃんと削除依頼しないと
    ageられちゃうんですよ…
0046名前は開発中のものです。02/11/06 21:36ID:ret9NUF2
何で、関数の中で、RECTで画面サイズ取得してるの?
Draw関数なのに、何でウェイトの処理入れてるの?
っていうか、座標を何で関数内で定義するの?
つーか、お前プログラムの勉強ちゃんとしろや!!!!!
0047名前は開発中のものです。02/11/06 21:58ID:???
1 名前:厨房似非PG 01/11/16 15:46 ID:???
46 名前:名前は開発中のものです。 :02/11/06 21:36 ID:ret9NUF2
01/11/16
02/11/06
( ´,_ゝ`)プッ
0048名前は開発中のものです。02/11/07 17:44ID:2yv67rKD
今時、DX7なんて使うなっ!






















アホッ!!
0049名前は開発中のものです。02/11/07 17:50ID:???
   ∧ ∧ シュー
   (,,゚Д゚)  リョー
  〜(   )
   |||
   (__)_)  【糸冬】
0050名前は開発中のものです。02/12/02 06:44ID:4gZczmnc
       /   /ー-,    ー────-,
      / / /ヽ、/        __/
      `y'    /ヽ、       |
      ∠_、 /   ヽ         |
       |    `ヽ、         |
     ,/ | ヽ              |
       |    `ヽ、        、|
■ このスレッドは過去ログ倉庫に格納されています