-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathonTimer.cpp
48 lines (37 loc) · 1.12 KB
/
onTimer.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <windows.h>
long myTime;
long myLastTime;
int dangoPositionX = 100;
int dangoPositionY = 100;
int dangoVelocityX = 80;
int dangoVelocityY = 80;
extern void onPaint(HWND hwnd, HDC hdc);
void onTimer(HWND hwnd){
HDC hdc;
HBITMAP hBmpMem,hPreBmp;
RECT rect,smallRect;
long deltaTime;
myTime = GetTickCount();
deltaTime = myTime - myLastTime;
if(myLastTime){
hdc = GetDC(hwnd);
GetClientRect(hwnd,&rect);
dangoVelocityY = dangoVelocityY + 0.5 * deltaTime;
dangoPositionX = dangoPositionX + deltaTime * dangoVelocityX / 1000;
dangoPositionY = dangoPositionY + deltaTime * dangoVelocityY / 1000;
/* ÔÚË«»º³åÖлæͼ */
onPaint(hwnd, hdc);
smallRect.bottom = rect.bottom - 20;
smallRect.left = rect.left + 20;
smallRect.right = rect.right - 20;
smallRect.top = rect.top + 20;
if((dangoPositionX + 80) > (smallRect.right) || (dangoPositionX - 20) < smallRect.left){
dangoVelocityX = -dangoVelocityX;
}
if((dangoPositionY + 50) > (smallRect.bottom) || (dangoPositionY - 30) < smallRect.top){
dangoVelocityY = -dangoVelocityY;
}
ReleaseDC(hwnd,hdc);
}
myLastTime = myTime;
}