📄 main.cpp
字号:
#include <windows.h>
#include <iostream>
#include "ps.h"
PhysicalSprite* LoadSprite(const char* filename)
{
HBITMAP bitmap=(HBITMAP)LoadImage(GetModuleHandle(NULL),
"sprite.bmp",IMAGE_BITMAP,0,0,
LR_LOADFROMFILE|LR_CREATEDIBSECTION);
if (bitmap == NULL) return NULL;
DIBSECTION di;
GetObject(bitmap,sizeof(DIBSECTION),&di);
PhysicalSprite* result = NULL;
// Currently only for 8 bpp. Easy to fit to other types
if (di.dsBm.bmBitsPixel == 8)
{
int width=di.dsBm.bmWidth;
int height=di.dsBm.bmHeight;
PIXELVALUE* pix=(PIXELVALUE*)di.dsBm.bmBits;
PIXELVALUE transparent_color = pix[0];
result = new PhysicalSprite(pix,width,height,transparent_color);
}
DeleteObject(bitmap);
return result;
}
int main(int argc, char* argv[])
{
PhysicalSprite* s1=LoadSprite("sprite.bmp");
if (s1!=NULL)
{
PhysicalSprite* s2=LoadSprite("sprite.bmp");
if (s2!=NULL)
{
s1->SetPosition(10,10);
s2->SetPosition(20,20);
s1->DetectCollision(*s2);
delete s2;
}
delete s1;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -