斜めスクロールが出来ないぞゴルァ!
■ このスレッドは過去ログ倉庫に格納されています
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);
}
■ このスレッドは過去ログ倉庫に格納されています