カクカク移動

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ねこkk

カクカク移動

#1

投稿記事 by ねこkk » 14年前

はじめまして、ねこkkと言います。
いつもロムってたのですが分からないとこがあったので質問させていただきます。

いま画像を右に動かしてみようとしたのですが移動がすごくカクカクになってしまいます。
もっと滑らかに移動してほしいのですが・・・
↓が実際のソースです


#include"DxLib.h"

class Object{
private:
int x;
int v;
public:
Object(){ x=0; v=256;}
int moving();

};




int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE PrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || !SetDrawScreen(DX_SCREEN_BACK)|| DxLib_Init() == -1) return -1;


Object obj;

while( !ProcessMessage() && !ClearDrawScreen() )
{
ClearDrawScreen();
obj.moving();
ScreenFlip();
}


DxLib_End();

return 0;
}




int MoveClass::moving()
{
x += v * 17;
LoadGraphScreen(x/1000,100,"ball.png",TRUE);
return 0;
}


コンパイラ?は Visual C++ 2010 をつかっています。
OSは Windows 7 です。
プログラミングはまだ始めたばかりです。
どうか、どなたかカクカクする理由が分かる方がいらっしゃいましたらご教授お願いします。

みけCAT

Re:カクカク移動

#2

投稿記事 by みけCAT » 14年前

とりあえず
http://studiokingyo.fc2web.com/dxlib/ka ... le.html#t1
>DxLib_Init()をする前にSetDrawScreen(DX_SCREEN_BACK);をしても無効ですので気をつけてください。

いろいろいじってみました。
#include"DxLib.h" 

class Object{ 
private: 
    int x; 
    int v;
    int graph;
public: 
    Object(){
        x=0;  v=256;
        graph=LoadGraph("ball.png");
    } 
    int moving(); 

}; 




int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE PrevInstance, LPSTR lpCmdLine, int nCmdShow) 
{ 
    if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1) return -1; 
    if(SetDrawScreen(DX_SCREEN_BACK)) {
        DxLib_End();
        return -1;
    }
     
    Object obj;     

    while( !ProcessMessage() && !ClearDrawScreen() ) 
    { 
        //ClearDrawScreen(); 
        obj.moving(); 
        ScreenFlip(); 
    } 


    DxLib_End(); 

    return 0; 
} 




//int MoveClass::moving() 
int Object::moving() 
{ 
    x +=  v * 17;
    //SetDrawMode( DX_DRAWMODE_BILINEAR ) ;//線形補完描画
    DrawGraph(x/1000,100,graph,TRUE);
    //SetDrawMode(DX_DRAWMODE_NEAREST);//描画形式を戻す
    return 0; 
}

ねこkk

Re:カクカク移動

#3

投稿記事 by ねこkk » 14年前

DxLib_Init()をする前にSetDrawScreen(DX_SCREEN_BACK)をしても無効だったんですね。
まったく気づきませんでした。

ほかにも色々と修正していただきありがとうございます。
ものすごく勉強になりました!
確かにObjectクラスならフィールドにグラフィックハンドルを格納する変数をもっていたほうがいいですね。

自分のソースはミスばかりで全くお恥ずかしい限りです。
これじゃあ自作ゲームを完成させるまでに何年かかることやら・・・

まだまだ未熟者ですが、これからもよろしくお願いします。

閉鎖

“C言語何でも質問掲示板” へ戻る