问题标题: @王子逸 您要的地形绘制

0
0
已解决
沙宸安
沙宸安
高级启示者
高级启示者

若要绘制地图,请先运行装机软件:

#include<iostream>
#include<fstream>
using namespace std;
int main(){
    ofstream fout("地图存档.txt");
    int i,j,k;
    for(i=1;i<=10;i++){
        fout<<"图层"<<i<<endl;
        for(j=0;j<=59;j++){
            for(k=0;k<=59;k++){
                fout<<7<<" ";
            }
            fout<<endl;
        }
    } 
    fout.close();
}

主代码:

#include<iostream>
#include<fstream>
#include<stdio.h>
#include<cstring>
#include<time.h>
#include<windows.h>
#define KEY_DOWN(VK_NOnam) ((GetAsyncKeyState(VK_NOnam) & 0x8000) ? 1:0)
using namespace std;
int i,j,k,pic[11][60][60];
string nam[11];
void sav(){
    ofstream fout("地图存档.txt");
    for(i=1;i<=10;i++){
        fout<<nam[i]<<endl;
        for(j=0;j<=59;j++){
            for(k=0;k<=59;k++){
                fout<<pic[i][j][k]<<" ";
            }
            fout<<endl;
        }
    }
    fout.close();
}
void rea(){
    ifstream fin("地图存档.txt");
    for(i=1;i<=10;i++){
        fin>>nam[i];
        for(j=0;j<=59;j++){
            for(k=0;k<=59;k++){
                fin>>pic[i][j][k];
            }
        }
    }
    fin.close();
}
void color(int corcorcor){
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),corcorcor);
}
int kd(char ccc){
    if(!KEY_DOWN(ccc)) return 0;
    else return 1;
}
void xapic(int uuu){
    int xx=0,yy=0,cr=7;
    bool pen=0;
    while(!kd('M')){
        system("cls");
        color(7);
        cout<<"您已进入图片(60x60)编辑模式"<<endl<<"原文件:"<<endl;
        for(i=0;i<=59;i++){
            for(j=0;j<=59;j++){
                color(pic[uuu][i][j]);
                cout<<"▇";
            }
            cout<<endl;
        }
        color(7);
        cout<<">>XA系统 (长按3-4秒,按键更新较慢)Q-修改图片 M-退出编辑"<<endl;
        Sleep(3000);
        if(kd('Q'))while(!kd('M')){
            system("cls");
            color(7);
            cout<<"您已进入图片(60x60)编辑模式";
            cout<<" x:"<<xx<<" y:"<<yy<<endl;
            for(i=0;i<=59;i++){
                for(j=0;j<=59;j++){
                    color(pic[uuu][i][j]);
                    cout<<"▇";
                }
                cout<<endl;
            }
            color(7);
            cout<<">>XA系统 WASD-操作画笔 E-";
            if(pen) cout<<"抬起画笔 ";
            else cout<<"放下画笔 ";
            cout<<"R-更改颜色 M-保存并退出"<<endl;
            bool kdown=0;
            while(!kdown){
            if(kd('E')){
                pen=!pen;
                kdown=1;
            }
            if(kd('W') && xx!=0){
                xx--;
                kdown=1;
            }
            if(kd('S') && xx!=59){
                xx++;
                kdown=1;
            }
            if(kd('A') && yy!=0){
                yy--;
                kdown=1;
            }
            if(kd('D') && yy!=59){
                yy++;
                kdown=1;
            }
            if(pen) pic[uuu][xx][yy]=cr;
            if(kd('R')){
                system("cls");
                cout<<"更改色号:";
                for(i=0;i<=15;i++){
                    color(i);
                    cout<<"▇ ";
                }
                color(7);
                cout<<endl<<"色号编码:";
                for(i=0;i<=15;i++){
                    if(i<10)cout<<i<<"  ";
                    else cout<<i<<" ";
                }
                cout<<endl;
                cin>>cr;
                cr=cr%16;
                kdown=1;
            }
            if(kd('M')){
                kdown=1;
            }
            }
        }
    }
}
int main(){
    while(!kd('M')){
    int cmmmd=0;
    bool kb=0;
    rea();
    color(14);
    system("cls");
    cout<<"酷町问答地形绘制"<<endl; 
    color(7);
    cout<<"O-打开图层 R-保存 N-重命名图层 M-退出"<<endl;
    while(!kb){
        if(kd('O')){
            for(i=1;i<=10;i++){
                cout<<i<<":"<<nam[i]<<endl;
            }
            cout<<"输入图层:"<<endl;
            cin>>i;
            xapic(i);
            sav();
            system("cls");
            cout<<"正在退出。。。"<<endl;
            Sleep(1000);
            kb=1;
        }
        if(kd('R')){
            sav();
            system("cls");
            cout<<"保存成功"<<endl;
            Sleep(1000);
            kb=1;
        }
        if(kd('N')){
            system("cls");
            for(i=1;i<=10;i++){
                cout<<i<<":"<<nam[i]<<endl;
            }
            cout<<"输入图层:";
            cin>>i;   
            cout<<endl;
            cout<<"新名字:";
            cin>>nam[i];
            cout<<"改名成功"<<endl;
            Sleep(1000);
            kb=1;
            sav();
        }
    }} 
}

其实这东西的原理跟XA图片编辑器差不多,都是使用画笔操作的。

另外,我是严格按照王子逸的要求来的(大小60x60),有的人使用时会出现这样的情况:

那我也没办法。

其他人:“我。。。!XA你太。。。”

好的,再来个补丁版本:

#include<iostream>
#include<fstream>
#include<stdio.h>
#include<cstring>
#include<time.h>
#include<windows.h>
#define KEY_DOWN(VK_NOnam) ((GetAsyncKeyState(VK_NOnam) & 0x8000) ? 1:0)
using namespace std;
int i,j,k,pic[11][60][60];
string nam[11];
void sav(){
    ofstream fout("地图存档.txt");
    for(i=1;i<=10;i++){
        fout<<nam[i]<<endl;
        for(j=0;j<=59;j++){
            for(k=0;k<=59;k++){
                fout<<pic[i][j][k]<<" ";
            }
            fout<<endl;
        }
    }
    fout.close();
}
void rea(){
    ifstream fin("地图存档.txt");
    for(i=1;i<=10;i++){
        fin>>nam[i];
        for(j=0;j<=59;j++){
            for(k=0;k<=59;k++){
                fin>>pic[i][j][k];
            }
        }
    }
    fin.close();
}
void color(int corcorcor){
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),corcorcor);
}
int kd(char ccc){
    if(!KEY_DOWN(ccc)) return 0;
    else return 1;
}
void xapic(int uuu){
    int xx=0,yy=0,cr=7;
    bool pen=0;
    while(!kd('M')){
        system("cls");
        color(7);
        cout<<"您已进入图片(60x60)编辑模式"<<endl<<"原文件:"<<endl;
        for(i=0;i<=59;i++){
            for(j=0;j<=59;j++){
                color(pic[uuu][i][j]);
                cout<<"@";
            }
            cout<<endl;
        }
        color(7);
        cout<<">>XA系统 (长按3-4秒,按键更新较慢)Q-修改图片 M-退出编辑"<<endl;
        Sleep(3000);
        if(kd('Q'))while(!kd('M')){
            system("cls");
            color(7);
            cout<<"您已进入图片(60x60)编辑模式";
            cout<<" x:"<<xx<<" y:"<<yy<<endl;
            for(i=0;i<=59;i++){
                for(j=0;j<=59;j++){
                    color(pic[uuu][i][j]);
                    cout<<"@";
                }
                cout<<endl;
            }
            color(7);
            cout<<">>XA系统 WASD-操作画笔 E-";
            if(pen) cout<<"抬起画笔 ";
            else cout<<"放下画笔 ";
            cout<<"R-更改颜色 M-保存并退出"<<endl;
            bool kdown=0;
            while(!kdown){
            if(kd('E')){
                pen=!pen;
                kdown=1;
            }
            if(kd('W') && xx!=0){
                xx--;
                kdown=1;
            }
            if(kd('S') && xx!=59){
                xx++;
                kdown=1;
            }
            if(kd('A') && yy!=0){
                yy--;
                kdown=1;
            }
            if(kd('D') && yy!=59){
                yy++;
                kdown=1;
            }
            if(pen) pic[uuu][xx][yy]=cr;
            if(kd('R')){
                system("cls");
                cout<<"更改色号:";
                for(i=0;i<=15;i++){
                    color(i);
                    cout<<"▇ ";
                }
                color(7);
                cout<<endl<<"色号编码:";
                for(i=0;i<=15;i++){
                    if(i<10)cout<<i<<"  ";
                    else cout<<i<<" ";
                }
                cout<<endl;
                cin>>cr;
                cr=cr%16;
                kdown=1;
            }
            if(kd('M')){
                kdown=1;
            }
            }
        }
    }
}
int main(){
    while(!kd('M')){
    int cmmmd=0;
    bool kb=0;
    rea();
    color(14);
    system("cls");
    cout<<"酷町问答地形绘制"<<endl; 
    color(7);
    cout<<"O-打开图层 R-保存 N-重命名图层 M-退出"<<endl;
    while(!kb){
        if(kd('O')){
            for(i=1;i<=10;i++){
                cout<<i<<":"<<nam[i]<<endl;
            }
            cout<<"输入图层:"<<endl;
            cin>>i;
            xapic(i);
            sav();
            system("cls");
            cout<<"正在退出。。。"<<endl;
            Sleep(1000);
            kb=1;
        }
        if(kd('R')){
            sav();
            system("cls");
            cout<<"保存成功"<<endl;
            Sleep(1000);
            kb=1;
        }
        if(kd('N')){
            system("cls");
            for(i=1;i<=10;i++){
                cout<<i<<":"<<nam[i]<<endl;
            }
            cout<<"输入图层:";
            cin>>i;   
            cout<<endl;
            cout<<"新名字:";
            cin>>nam[i];
            cout<<"改名成功"<<endl;
            Sleep(1000);
            kb=1;
            sav();
        }
    }} 
}

这样会舒服点。


0
已采纳
王子逸
王子逸
新手天翼
新手天翼

你是不是理解错了什么

是让你设计地图

0
0
0
0
0
0
0
我要回答