トップページ > 過去ログ > 記事閲覧
DrawTile とDrawChipmap関数はどう使う?
名前:Hima 日時: 2009/09/02 12:50

hxxp://www.youtube.com/watch?v=F5IY-x47Qq0 実はこのビデオのスクロールバックラウンドのようにを作りたいです。DxLib.hを調べるとDrawTileとDrawChipmap関数を見つけました。でも使うと何も起こらないみたいです。どうしたらいいでしょうか。 よろしければ教えてください。 m(_ _)m

Page: 1 |

Re: DrawTile とDrawChipmap関数はどう使う? ( No.1 )
名前:管理人 日時:2009/09/03 22:33

今確認してみましたが、DrawTile 関数は正常に動作しないようになっていました。 長い間正常に動作するようになっていなかったみたいで、かつてこの関数が どのような仕様だったのかを引数ととりあえず修正しただけの動作では推測することができませんでした。 なので、とりあえず Himaさんがご希望される処理をするサンプルプログラムを作ってみました。 LoadGraph( "64.bmp" ) ; と書かれている部分を、存在する画像ファイル名に変えてみてください 恐らく貼っていただいたリンク先の動画と同じ見た目の処理が実現できていると思います。 #include "DxLib.h" // 画面いっぱいに画像を描画する // zx, zy : ずらすドット数 int DrawTileGraph( int zx, int zy, int GrHandle ) { int w, h, NumX, NumY, i, j, dx, dy ; // 画像のサイズを得る GetGraphSize( GrHandle, &w, &h ) ; // ずらすドット数を画像のサイズで割って、その余りを zx, zy に代入する zx %= w ; zy %= h ; // 縦横に描画する数を算出する NumX = 640 / w + 2 ; NumY = 480 / h + 2 ; // 数だけ描画 dy = -zy ; for( i = 0 ; i < NumY ; i ++, dy += h ) { dx = -zx ; for( j = 0 ; j < NumX ; j ++, dx += w ) { DrawGraph( dx, dy, GrHandle, FALSE ) ; } } // 正常終了 return 0 ; } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int handle, zure; // ウインドウモードで起動 ChangeWindowMode( TRUE ); // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1; // 画像の読み込み handle = LoadGraph( "64.bmp" ); // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ); // メインループ(何かキーが押されたらループを抜ける) zure = 0 ; while( ProcessMessage() == 0 && CheckHitKeyAll() == 0 ) { // ずらすドット数を変化させる zure += 2 ; // 画面のクリア ClearDrawScreen(); // 画面いっぱいに描画 DrawTileGraph( zure, zure, handle ) ; // 裏画面の内容を表画面に反映 ScreenFlip(); } // DXライブラリの後始末 DxLib_End(); // ソフトの終了 return 0; }
Re: DrawTile とDrawChipmap関数はどう使う? ( No.2 )
名前:Hima 日時:2009/09/07 13:46

管理人様,本当にありがとうございます。 DrawTile関数の代わりにこのサンプルを使います。^_^

Page: 1 |