从零开始用 Windows C++ 桌面程序制作方舟同人游戏(五)

一、角色信息的定义与绘制

继障碍物后,重要的就是要把敌人加进来。敌人加进来之后需要与其进行战斗。而战斗则与属性等数值挂钩。我们需要建立侧边栏,实时显示出角色的数值来监测战斗。因此,现在我们的任务是将 SideBar 类实现一部分。

再看一看 SideBar.h:

class SideBar
{
   
	std::vector<COperator> operators; // 当前干员
	COperator currentOperator; // 当前出战的干员
	int ingot; // 源石锭
	int cost; // 部署费用
};

注意 COperatorMCharacter 的不同。COperator 是只存在于 SideBar 中的数据,而 MCharacter 是需要实际被绘制在地图上的角色。当 MCharacter 与其他地图元素发生交互时(与敌人战斗,捡到宝物等等),就会将信息返回给 SideBar,由 SideBar 处理结果。

SideBar 的头文件:

#pragma once
#include <vector>
#include "Coperator.h"
class SideBar
{
   
	std::vector<COperator*> operators; // 当前干员
	COperator* currentOperator; // 当前出战的干员
	unsigned int ingot; // 源石锭
	unsigned int cost; // 部署费用
public:
	unsigned int getIngot() {
    return ingot; }
	unsigned int getCost() {
    return cost; }
	void setIngot(unsigned int i) {
    ingot = i; }
	void setCost(unsigned int c) {
    cost = c; }
};

现在添加一系列绘图函数与变量以将边栏绘制出来。

准备好斯卡蒂的头像 Skadi.bmp:

在这里插入图片描述

边栏的材质图片 SideBar.bmp(灰色纯色,测试材质 qwq):
在这里插入图片描述

创建句柄:

HBITMAP hSideBar; // 边栏图句柄
HBITMAP hAvatar; // 边栏干员头像

先在 Game_Init() 中加入边栏材质载入的内容:

hAvatar = (HBITMAP)LoadImage(NULL, L"res/Skadi.bmp", IMAGE_BITMAP, CELL_SIZE, CELL_SIZE, LR_LOADFROMFILE);
    hSideBar = (HBITMAP)LoadImage(NULL, L"res/SideBar.bmp", IMAGE_BITMAP, CELL_SIZE * 6, CELL_SIZE * 12, LR_LOADFROMFILE);

再新建一个 SideBar_Paint() 函数。

VOI
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值