好吧,所以我在Windows中嘗試了一些非常基本的動畫的東西(如果你甚至可以稱之爲動畫)。我弄亂了TextOut的參數(文本的座標)不是動畫。基本上,它會在幾個不同的地方打印「你好」,一次又一次,似乎沒有任何事情發生。問題在於文本正在屏幕上繪製,而沒有前一次調用的文本將InvisibleateRect從屏幕上清除。另外,當將一些簡單的遞增序列值(如1,2,3,4,5等)作爲參數傳遞給TextOut時,不存在這樣的問題。簡單的動畫在c + +
#include <Windows.h>
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);
struct point
{
double x;
double y;
double t;
};
point obj={30,30,1};
int WINAPI wWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPWSTR cmdLine,int cmdShow)
{
WNDCLASSEX windowsClass={0};
windowsClass.hCursor=LoadCursor(NULL,IDC_ARROW);
windowsClass.cbSize=sizeof(WNDCLASSEX);
windowsClass.hInstance=hInstance;
windowsClass.lpfnWndProc=WndProc;
windowsClass.cbClsExtra=NULL;
windowsClass.style=CS_HREDRAW | CS_VREDRAW;
windowsClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
windowsClass.hbrBackground=(HBRUSH)GetStockObject(NULL_BRUSH);
windowsClass.lpszClassName="Devjeet's Window";
if(!RegisterClassExA(&windowsClass))
return -1;
HWND hWnd = CreateWindowExA(NULL,"Devjeet's Window","Animation V1 By Devjeet",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,400,400,NULL,NULL,hInstance,NULL);
if(!hWnd)
return -1;
ShowWindow(hWnd,cmdShow);
MSG msg={0};
while(msg.message!=WM_QUIT)
{
if(PeekMessage(&msg,0,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return static_cast<int>(msg.wParam);
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC hDC;
PAINTSTRUCT paintStruct;
switch(message)
{
case WM_PAINT:
hDC=BeginPaint(hWnd,&paintStruct);
TextOut(hDC,(int)(obj.x),(int)(obj.y),"Hello",sizeof("Hello"));
obj.y=(double)(30*obj.t+(obj.t*obj.t*9.8/2));
obj.x=(double)(30*obj.t+(obj.t*obj.t*9.8/2));
obj.t+=.8;
EndPaint(hWnd,&paintStruct);
if(obj.y>100.0)
{
obj.x=30.0;
obj.y=30.0;
obj.t=1.0;
}
Sleep(800);
InvalidateRect(hWnd,NULL,TRUE);
break;
case WM_DESTROY:
PostQuitMessage(NULL);
break;
default:
return DefWindowProc(hWnd,message,wParam,lParam);
break;
}
return 0;
}
你的問題是什麼? – sth
我的問題是爲什麼會發生這種情況?這個方程有什麼問題嗎?或者有什麼關於Windows的東西我不知道? – devjeetroy
@devjeetroy:你的問題標題與你的問題有什麼關係? – Mat