C++控制台RPG游戏:对话系统

该博客介绍如何在C++中构建控制台RPG游戏的对话系统。通过CTalk类继承窗口基类,利用结构体SArrTalk存储对话数据,并在需要对话的类中包含CTalk对象来实现对话流程。对话内容存储于文件中,如NPC配置表,通过结构体避免二维数组在参数传递中的复杂性。示例中,CTalk在CMission类中用于管理任务接交时的对话内容初始化。
摘要由CSDN通过智能技术生成

具体实现思路:

CTalk类继承窗口基类,里面封装了updata()和onRander()方法,里面包含了结构体SArrTalk*  m_pArrTalk,用来存对话数据。

CTalk类控制对话的进行,以及数据的渲染。而对话的内容则存在相应的文件之中,如NPC的对话存在NPC的配置表之中,哪个类需要对话,就让这个类包含CTalk类的对象,由此完成对话。

CTalk类的代码:

头文件

#pragma once
struct SArrTalk
{
	SArrTalk()
	{
		memset(arrTalk, 0, sizeof(arrTalk));
	}
	char arrTalk[10][128];
};
class CTalk:public CWndBase
{
public:
	//void initTalk(SArrTalk* pArrTalk, int nTalkLines);
	void updata();
	void onRander();
	void setTalkLines(int nTalkLines);
	SArrTalk* getArrTalk(){ return m_pArrTalk; };
	CTalk();
	~CTalk();
	GETTER_SETTER(bool, IsTalked, m_bIsTalked);
private:
	int m_nIndex;//当前对话索引
	int m_nTalkLines;//对话条数
	SArrTalk* m_pArrTalk;
};

源文件:

#include "stdafx.h"
#include "Talk.h"


CTalk::CTalk()
{
	m_nIndex = 0;
	m_bIsTa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值