⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multimoveframe.cpp

📁 实现的是在物理碰撞
💻 CPP
字号:
// MultiMoveFrame.cpp : implementation file
//

//NOTE THAT   !!!!!!!!!!!!!!!
//#include <new>

#include "stdafx.h"
#include "resource.h"
#include "MultiMoveFrame.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMultiMoveFrame

IMPLEMENT_DYNCREATE(CMultiMoveFrame, CFrameWnd)

CMultiMoveFrame::CMultiMoveFrame()
{
	Create(NULL, "MultiMove");
	CClientDC dc(this);
	mdc = new CDC;
	mdc->CreateCompatibleDC(&dc);

	bmp1 = new CBitmap;
	bmp2 = new CBitmap;
	bmp3 = new CBitmap;

	bmp1->m_hObject = (HBITMAP)::LoadImage(NULL, "C1.bmp",
		IMAGE_BITMAP, 200, 60, LR_LOADFROMFILE);

	bmp2->m_hObject = (HBITMAP)::LoadImage(NULL, "C2.bmp",
		IMAGE_BITMAP, 200, 120, LR_LOADFROMFILE);

	bmp3->m_hObject = (HBITMAP)::LoadImage(NULL, "C3.bmp",
		IMAGE_BITMAP, 80, 120, LR_LOADFROMFILE);

	x1 = -70, y1 =200, v1 = 5;
	x2 = 520, y2 = 150, v2 = 0;
}

CMultiMoveFrame::~CMultiMoveFrame()
{
	delete bmp1;
	delete bmp2;
	delete bmp3;
	delete mdc;
}


BEGIN_MESSAGE_MAP(CMultiMoveFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMultiMoveFrame)
	ON_WM_CREATE()
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMultiMoveFrame message handlers

int CMultiMoveFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	SetTimer(1, 50, NULL);
	
	return 0;
}

void CMultiMoveFrame::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	CClientDC dc(this);
	mdc->SelectObject(bmp1);
	dc.BitBlt(x1, y1, 200, 60,
		mdc, 0, 0, SRCCOPY);

 	mdc->SelectObject(bmp2);
	dc.BitBlt(x2, y2, 200, 120,
		mdc, 0, 0, SRCCOPY);


	if(x1 + 200 > x2)
	{
		mdc->SelectObject(bmp3);

		dc.BitBlt(x1 + 160, y1, 80, 60,
			mdc, 0, 60, SRCPAINT);

		dc.BitBlt(x1 + 160, y1, 80, 60,
			mdc, 0, 0, SRCAND);

		KillTimer(1);
	}


	x1 += v1;
	x2 += v2;
	CFrameWnd::OnTimer(nIDEvent);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -