<<冒险者之旅>>
只是实现基础功能,后面会优化代码以及建立框架,当然有更好实现方法请告知,言谢(GBK编码)
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <iomanip>
using namespace std;
void OutputWindows( ); //输出界面外框
void OutputDownWindows( ); //输出底部界面外框
void WhileString( string, int );//循环输出字符串
void WordMain( ); //输出主界面文字
void WordRoleSlect( ); //输出角色选择文字
void WordRoleContent( int ); //输出角色介绍文字
void WordAltar( int ); //输出祭坛界面文字
void MoveMainOption( ); //移动主界面方框
void MoveRoleOption( ); //移动角色选择界面方框
void MoveRole( ); //移动角色
HANDLE hand = GetStdHandle( STD_OUTPUT_HANDLE );//创建屏幕输入输出的句柄
COORD coord; //创建坐标的结构体
string global_role; //游戏角色
//对本函数传值可以设置光标的位置
void SetPosition( int x, int y ) {
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition( hand, coord ); //传入输入输出句柄和坐标设置光标位置
}
//建立一个有xy的坐标结构体
struct StructXY {
int x;
int y;
}struct_xy, struct_xy2;
//抹除初始坐标内容,相当于更新后将之前的位置设为空格
void Erase( StructXY erase_xy, int select ) {
SetPosition( erase_xy.x, erase_xy.y );
cout << setw( 1 ) << "\0";
switch( select ) {
case 0:erase_xy.x += 11; break;
case 1:erase_xy.x += 9; break;
}
SetPosition( erase_xy.x, erase_xy.y );
cout << setw( 1 )<< "\0";
}
//循环输出文字,传入xy结构体,输出文字,输出文字个数
void WordOutput( StructXY word_xy, string *st, int number ) {
for( int i = 0; i < number; i++ ) {
SetPosition( word_xy.x, word_xy.y );
cout << st[ i ];
word_xy.y++;
}
}
//移动角色2,传入xy结构体,方向id
void MoveRole2( StructXY role_xy, int select ) {
SetPosition