前言

本来是想打一个小游戏的……

可是打到一半思路断了……

只打出了模板……先把模板拿出来放着

Code

//head
#include <iostream>
#include <cstdio>
#include <cstring>
#include <windows.h>
#include <conio.h>
using namespace std;
//*head

//define
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
#define Row_down KEY_DOWN(VK_MBUTTON)
#define Left_down KEY_DOWN(VK_LBUTTON)
#define fup(a,b) for(int i = (a); i < (b); i++)
#define sup(a,b) for(int j = (a); j < (b); j++)
//*define

//struct
struct player{
    int x;
    int y;
    int money;
}pl;
struct jump{
    int time;
    int hel;
    void helfresh()
    {

    }
}jup;
//*struct

//char
char map[16][31] = {
"                              ",
"                              ",
"  ...                    ...  ",
"           .......            ",
"                              ",
"   ...                  ...   ",
"                              ",
"       ..          ..         ",
" ...       ..   ..        ... ",
"           .     .            ",
"         ..  ...  ..          ",
"                              ",
"      ..................      ",
"                              ",
"                              "
};
char index[30][30];
//*char

//int
//*int

//bool
bool run_ch = true;
//*bool

//function
void gotoxy(int y, int x)
{
    COORD pos = {x,y};
    HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hOut, pos);
}

void init()
{
    pl.x = 0;
    pl.y = 0;
    int i, j = 30;
    for(i = 0; i <= 15; i++)
    {
        gotoxy(i, j);
        cout<<"*";
    }
    i = 15;
    for(j = 0; j <= 30; j++)
    {
        gotoxy(i, j);
        cout<<"*";
    }
    for(i = 0; i < 15; i ++)
    {
        for(j = 0; j < 30; j++)
        {
            gotoxy(i, j);
            cout<<map[i][j];
        }
    }
}

void shop()
{

}

bool arv(int a, int b)
{
    if(map[a][b]=='*'||map[a][b]=='.'||map[a][b]=='|'||a<0||b<0||a>=15||b>=30)
        return false;
    return true;
}

char cnt_char;int cnt = 0;
void run_read(char ch)
{
    if(ch == 'a')
    {
        int nx = pl.x;
        int ny = pl.y - 1;
        if(!arv(nx, ny))
            return;

        gotoxy(pl.x, pl.y);
        cout<<" ";
        pl.x = nx;
        pl.y = ny;
        gotoxy(pl.x, pl.y);
        cout<<"A";
    }

    if(ch == 'd')
    {
        int nx = pl.x;
        int ny = pl.y + 1;
        if(!arv(nx, ny))
            return;

        gotoxy(pl.x, pl.y);
        cout<<" ";
        pl.x = nx;
        pl.y = ny;
        gotoxy(pl.x, pl.y);
        cout<<"A";
    }
    if(ch == 's')
    {
        int nx = pl.x + 1;
        int ny = pl.y;
        if(!arv(nx, ny))
            return;

        gotoxy(pl.x, pl.y);
        cout<<" ";
        pl.x = nx;
        pl.y = ny;
        gotoxy(pl.x, pl.y);
        cout<<"A";
    }
    if(ch == 'k')
    {
        if(jup.hel > 0 && map[pl.x + 1][pl.y] != '.' && pl.x != 14)
        {
            jup.hel--;
            goto next2;
        }
        if(map[pl.x + 1][pl.y] != '.' && pl.x != 14)
            return;

        next2:
        jup.time = 3;
        if(cnt_char == 'd')
            run_read('d');
        if(cnt_char == 'a')
            run_read('a');
    }
    if(ch == 'w')
    {
        int nx = pl.x - 1;
        int ny = pl.y;
        if(!arv(nx, ny))
            return;

        gotoxy(pl.x, pl.y);
        cout<<" ";
        pl.x = nx;
        pl.y = ny;
        gotoxy(pl.x, pl.y);
        cout<<"A";
    }
    if(ch == 'n')
    {
        jup.time = 0;
        cnt_char = ' ';
        cnt = 0;
    }
    if(ch == 'f')
    {
        shop();
    }
}

void run()
{
    char ch;
    while(run_ch)
    {
        if(map[pl.x + 1][pl.y] == '.' || pl.x == 14)
        {
            jup.hel = 0;
            jup.helfresh();
        }
        if(!kbhit())
        {
            cnt++;
            if(cnt > 3)
                cnt_char = ' ', cnt = 0, ch = ' ';
            goto run_next;
        }

        ch = getch();
        if(ch == 'w')
            goto run_next;
        run_read(ch);

        run_next:

        gotoxy(16,0);
        cout<<pl.x<<"  "<<pl.y<"   ";
        if(ch == 'k')
            ch = cnt_char;
        else
            cnt_char = ch;

        if(jup.time == 0)
        {
            run_read('s');
            run_read(cnt_char);
            Sleep(100);
        }
        else
        {
            run_read('w');
            run_read(cnt_char);
            jup.time--;
            Sleep(100);
        }
        Sleep(20);
    }
}
//*function

//main
int main()
{
    init();
    run();
    return 0;
}
//*main

效果图:

(图片有可能烂掉,因为我的图片放在博客园,我会尽快换到聚合图床)

后面我会将代码贴上注释,这样你萌就可以改了(其实自己也是看得懂的)。

不得不说我的效果做的垃圾的一批,可是我不会其他开发啊,不知道在哪学,只能自己慢慢找一些开发实例看一些代码。

[C++]Game模板-正面视角的更多相关文章

  1. 快速完成网页设计,10个顶尖响应式HTML5网页模板助你一臂之力

    为了寻找一个优质的网页模板,网页设计师和开发者往往可能会花上大半天的时间.不过幸运的是,现在的网页设计师和开发人员已经开始共享HTML5,Bootstrap和CSS3中的免费网页模板资源.鉴于网站模板 ...

  2. Unity入门教程(上)

    一.介绍 目的:通过尝试制作一款使用玩家角色把小球弹飞的简单小游戏,熟悉使用Unity进行游戏开发的基本流程. 软件环境:Unity 2017.3.0f3,Visual Studio 2013 二.创 ...

  3. ECCV 2018 | 旷视科技提出GridFace:通过学习局部单应变换实现人脸校正

    全球计算机视觉三大顶会之一 ECCV 2018(European Conference on Computer Vision)即将于 9 月 8 -14 日在德国慕尼黑拉开帷幕,旷视科技有多篇论文被此 ...

  4. HTML5 + CSS3 实现地球绕太阳公转

    使用的是正面视角,主要是用 HTML5 + CSS3 来实现,JS只是用来画图. test.html: <!DOCTYPE html> <html> <head> ...

  5. WPF Viewport3D 解决透视模式时窗体模糊

    最近折腾Viewport3D玩,遇到了一些诡异的问题,研究一下略有心得,特此和大家分享~ 三维图形概述: https://msdn.microsoft.com/zh-cn/library/ms7474 ...

  6. thinkphp5杂谈--项目架构和模板搭建(view视角)

    nginx网站配置 项目架构 项目文件夹 视图模板 一种出幺蛾子的访问办法 访问相关特色模块并渲染视图

  7. 6款程序员不得不爱的bootstrap模板

    Bootstrap是基于jQuery框架开发的,它在jQuery框架的基础上进行了更为个性化和人性化的完善,形成一套自己独有的网站风格,并兼容大 部分jQuery插件.Bootstrap中包含了丰富的 ...

  8. 50款免费 PSD 名片设计模板源文件下载《下篇》

    名片是陌生人之间建立联系的最便捷.最有效的工具.名片它可能是给你的客户留下正面的印象第一步,另一方面,名片是一个企业最重要和最符合成本效益的营销工具之一,尤其是对于刚刚起步的企业.这里收集了50款免费 ...

  9. 13. 星际争霸之php设计模式--正面模式

    题记==============================================================================本php设计模式专辑来源于博客(jymo ...

随机推荐

  1. 12个超好用的IntelliJ IDEA 插件!你用过几个?

    一.前言 IntelliJ IDEA 如果说IntelliJ IDEA是一款现代化智能开发工具的话,Eclipse则称得上是石器时代的东西了. 其实笔者也是一枚从Eclipse转IDEA的探索者,随着 ...

  2. 湖南大学第十四届ACM程序设计新生杯(重现赛)G a+b+c+d=? (16进制与LL范围)

    链接:https://ac.nowcoder.com/acm/contest/338/G来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K6 ...

  3. Java中接口和抽象类的区别?

    抽象类 抽象类必须用 abstract 修饰,子类必须实现抽象类中的抽象方法,如果有未实现的,那么子类也必须用 abstract 修饰.抽象类默认的权限修饰符为 public,可以定义为 public ...

  4. [系列] Go 使用 defer 函数 要注意的几个点

    概述 defer 函数大家肯定都用过,它在声明时不会立刻去执行,而是在函数 return 后去执行的. 它的主要应用场景有异常处理.记录日志.清理数据.释放资源 等等. 这篇文章不是分享 defer ...

  5. Python活力练习Day5

    Day5:连续输入n个字符串,请按照长度为8拆分每个字符串后输出到新的字符串组:长度不是8的整数倍的字符串请在后面补数字0,其中,空字符串不做处理. eg : input :   2    12345 ...

  6. AWVS 10.5使用指南

    前言 AWVS是一款可与IBM AppScan比肩的.功能十分强大的Web漏洞扫描器.由Acunetix开发,官方站点提供了关于各种类型漏洞的解释和如何防范,具体参考:Acunetix Web Vul ...

  7. Python基础-day01-6

    算数运算符 计算机,顾名思义就是负责进行 数学计算 并且 存储计算结果 的电子设备 目标 算术运算符的基本使用 01. 算数运算符 算数运算符是 运算符的一种 是完成基本的算术运算使用的符号,用来处理 ...

  8. 基于Tomcat的GeoServer部署步骤

    一.安装JAVA 资源:JDK1.8 提取码:0y26 步骤: 1.安装完成后,右击"我的电脑",点击"属性",选择"高级系统设置": 2. ...

  9. 【iOS翻译】对UIGestureRecognizer多种手势傻傻分不清

    UIGestureRecognizerDelegate A set of methods implemented by the delegate of a gesture recognizer to ...

  10. Android utils 工具类之MD5加密 MD5Utils

    实际开发过程中,密码不会保存明文形式,容易被别人窃取. MD5加密是不可逆的加密算法,只能由明文转换成密文. 但是有些人通过将明文对应的密文保存在数据库中,进行查询破解密文.为防止这种解密,根据许多对 ...