斜めスクロールが出来ないぞゴルァ!
■ このスレッドは過去ログ倉庫に格納されています
0001厨房似非PG
01/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);
}
0002名無しさん@お腹いっぱい。
01/11/16 15:53ID:???0003名無しさん@お腹いっぱい。
01/11/16 16:11ID:???.// /)
<_」 // ,,-''ヽ、
、-// ,, -''" \
\イ _,-'" \
.' /\ \
__ //\\ \
_/ /|[]::::::|_ / \/\\ /
゙ ./| ̄ ̄ ̄ ̄ //\ \/ \ // ___
| |:::「「「「「「 / \/\ /\\ /:::/ ./| |__
_..| |:::LLLLL//\ \/ \/\\/::::::/ / | ロ .|lllllllllllll
/ llllll| |:::「「「「 / \/\ /\ .\/ ./::::::::/ / ./ .| |lllllllllllll
__ llllll| |:::LLL.//\ \/ \/\ /::::::::/ | / .| ロ .|lllllllllllll
(666 llllll| |:::「「「/ \/\ /\ \/ /::::::::/ | ||/ ..| |lllllllllllll
llllll| |:::LL//\ \/ \/\ ./::::::::/ .| ||/ ..|
| |:::「./ .\/\ /\ \/ /::::::::/⌒ヽ、 .| ||/ ..|
| |:::l//\ \/ \/\_, -― 、 ''"⌒ヽ,_
(⌒ヽ、_,ノ⌒Y" Y .....⌒)
(⌒ヽー゙ ....::( ..::....... .__人.....::::::::::::::::::::
_ノ⌒ヽ Y⌒ヽ;;:::::"'::::::::::::::::::::::::::::: ___
___( ゙ ....:::..... Y" ∧_∧ /
// ll__ヽ_::::::::::::::::::::::::::::::ヽ....( ´Д`)< 1の母です。
「 ヽO≡≡O:::::::::::::::::::::::::::::::::::/ つ _つ \____
゙u─―u-――-u 人 Y
し'(_)
0004名無しさん@お腹いっぱい。
01/11/16 16:27ID:???0005名無しさん@お腹いっぱい。
01/11/16 16:29ID:???0006名無しさん@お腹いっぱい。
01/11/16 17:24ID:???0007名無しさん@お腹いっぱい。
01/11/16 18:35ID:???俺も弄るよ。えーと、エロ本エロ本・・・
0008名無しさん@お腹いっぱい。
01/11/16 21:04ID:???左下のif は 480 と比較じゃないの?
0より上、640(480)以下という表記は正しい?
0以上640(480)未満ではないの?
そもそも、何をしようとしてるかがわからん。
時下げ位しろ、TABを入れろ。
回線切って首を吊れ。
0009名無しさん@お腹いっぱい。
01/11/16 21:29ID:ChXOCnyRとりあえず、どんなゲームでどのように使うのか教えてくれればマジレスするけど。
日本語でいいから。ちょっとこのソースだけだと難しい。
それとも斜めスクロールできれば、どの方法でもOK?
0010_
01/11/16 21:38ID:MzjylXs90011_
01/11/16 22:24ID:MzjylXs9static変数嫌い
生数字嫌い
インデントしないの嫌い
0012名無しさん@お腹いっぱい。
01/11/16 22:39ID:???>バックバッファサーフェス
微妙に変な気がするのは気のせいか
0013名無しさん@お腹いっぱい。
01/11/16 22:52ID:???でも言いたい事は解る。
プライマリサーフェスとそのバックバッファ。3つ目は作業用サーフェスってとこか。
作業用サーフェスに描画した背景を少しずつずらしてバックバッファに転送して
フリップさせたいんだろう。まあ、>>1で来なけりゃ意味のない話だけど。
0014名無しさん@お腹いっぱい。
01/11/16 23:08ID:???もしかして半年くらい前から斜めスクロールで悩んでるの?>>1
0015名無しさん@お腹いっぱい。
01/11/16 23:23ID:???まじで、半年前にも見たぞこんなスレ
プログラム板で見た。
あと、DirectXスレでも同じ質問があったし、
したらばのゲ術板でも見た。
★DirectDrawで斜めスクロールの仕方
http://www.shitaraba.com/cgi-bin/read.cgi?key=1000542496_1&bbs=gamecreate&ls=100
0016名無しさん@お腹いっぱい。
01/11/16 23:48ID:???ワラタ。そのスレひどすぎ(w
というかソースを見る限り、>>1は斜めどころか普通にスクロールもできなさそう。
0017名無しさん@お腹いっぱい。
01/11/17 00:37ID:???■ このスレッドは過去ログ倉庫に格納されています