background.cpp

来自「一个小的类似于雷电的射击游戏」· C++ 代码 · 共 56 行

CPP
56
字号
#include "StdAfx.h"
#include ".\background.h"

BackGround::BackGround(HWND hWnd)
{
	m_hWnd = hWnd;
	RECT rect;
	GetClientRect(hWnd, &rect);
	m_iWidth = rect.right - rect.left;
	m_iHeight = rect.bottom - rect.top;

	for (int i = 0; i < STAR_NUMBER; ++i)
	{
		m_ptStar[i].x = rand() % m_iWidth;
		m_ptStar[i].y = rand() % m_iHeight;
		m_cColor[i] = 128;
	}
}

BackGround::~BackGround(void)
{
}

void BackGround::Update()
{
	for (int i = 0; i < STAR_NUMBER; ++i)
	{
		if (rand() % TWINKLE_DELAY ==0)
			m_cColor[i] = rand() % 256;
		
		if (m_ptStar[i].y > m_iHeight)
			m_ptStar[i].y = 0;
		else
			m_ptStar[i].y += SCROLL_VELOCITY;
	}	
}

void BackGround::Draw(HWND hWnd, HDC hDC)
{
	// RECT rect = {0, 0, m_iWidth, m_iHeight};
	RECT rect;
	GetClientRect(hWnd, &rect);

	// 绘制黑色背景
	HBRUSH hBrush = CreateSolidBrush(RGB(0, 0, 0));
	FillRect(hDC, &rect, hBrush);
	DeleteObject(hBrush);

	// 绘制星星
	for (int i = 0; i < STAR_NUMBER; ++i)
	{
		SetPixel(hDC, m_ptStar[i].x, m_ptStar[i].y,
			RGB(m_cColor[i], m_cColor[i], m_cColor[i]));
	}
}

⌨️ 快捷键说明

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