[C++]Game模板-正面视角
前言
本来是想打一个小游戏的……
可是打到一半思路断了……
只打出了模板……先把模板拿出来放着
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模板-正面视角的更多相关文章
- 快速完成网页设计,10个顶尖响应式HTML5网页模板助你一臂之力
为了寻找一个优质的网页模板,网页设计师和开发者往往可能会花上大半天的时间.不过幸运的是,现在的网页设计师和开发人员已经开始共享HTML5,Bootstrap和CSS3中的免费网页模板资源.鉴于网站模板 ...
- Unity入门教程(上)
一.介绍 目的:通过尝试制作一款使用玩家角色把小球弹飞的简单小游戏,熟悉使用Unity进行游戏开发的基本流程. 软件环境:Unity 2017.3.0f3,Visual Studio 2013 二.创 ...
- ECCV 2018 | 旷视科技提出GridFace:通过学习局部单应变换实现人脸校正
全球计算机视觉三大顶会之一 ECCV 2018(European Conference on Computer Vision)即将于 9 月 8 -14 日在德国慕尼黑拉开帷幕,旷视科技有多篇论文被此 ...
- HTML5 + CSS3 实现地球绕太阳公转
使用的是正面视角,主要是用 HTML5 + CSS3 来实现,JS只是用来画图. test.html: <!DOCTYPE html> <html> <head> ...
- WPF Viewport3D 解决透视模式时窗体模糊
最近折腾Viewport3D玩,遇到了一些诡异的问题,研究一下略有心得,特此和大家分享~ 三维图形概述: https://msdn.microsoft.com/zh-cn/library/ms7474 ...
- thinkphp5杂谈--项目架构和模板搭建(view视角)
nginx网站配置 项目架构 项目文件夹 视图模板 一种出幺蛾子的访问办法 访问相关特色模块并渲染视图
- 6款程序员不得不爱的bootstrap模板
Bootstrap是基于jQuery框架开发的,它在jQuery框架的基础上进行了更为个性化和人性化的完善,形成一套自己独有的网站风格,并兼容大 部分jQuery插件.Bootstrap中包含了丰富的 ...
- 50款免费 PSD 名片设计模板源文件下载《下篇》
名片是陌生人之间建立联系的最便捷.最有效的工具.名片它可能是给你的客户留下正面的印象第一步,另一方面,名片是一个企业最重要和最符合成本效益的营销工具之一,尤其是对于刚刚起步的企业.这里收集了50款免费 ...
- 13. 星际争霸之php设计模式--正面模式
题记==============================================================================本php设计模式专辑来源于博客(jymo ...
随机推荐
- 分布式事务解决方案,中间件 Seata 的设计原理详解
作者:张乘辉 前言 在微服务架构体系下,我们可以按照业务模块分层设计,单独部署,减轻了服务部署压力,也解耦了业务的耦合,避免了应用逐渐变成一个庞然怪物,从而可以轻松扩展,在某些服务出现故障时也不会影响 ...
- 在MSSQL中的简单数据类型递归
在某些特定的项目需求中,我们需要实现树状数据结构, 由此,我们需要用递归将数据查询出来. WITH T AS ( SELECT ID,PID FROM TableName WHERE ID=1 UNI ...
- CCF-CSP题解 201903-4 消息传递接口
求并行的各个进程,且进程内部顺序执行的情况下,会不会出现"死锁". 首先用\(%[^\n]\)将每个进程读入.最后过不了居然是因为\(str[\ ]\)开小了(悲喜交加.存储在\( ...
- Java入门(一)——类、抽象类和接口
Java是一门面向对象语言,可以看出"对象"在Java有着举足轻重的位置.那么,"对象"从何而来呢?那必须是丈母娘造出来的,下面我们就先来说说这个丈母娘--类. ...
- UWP 从创建到发布流程一栏
# UWP的产品新建到发布流程一览 1,UWP开发特性 U: Universal(通用) W: Windows P: Plantform(平台) 运行在Windows10设备 比WPF更加多样化和完善 ...
- Teigha.net实体属性注释
Polyline3d: 3D polyline的类型由PolyType属性存储, 它是由Poly3dType枚举定义的整数值.PolyType属性是一种绘制三维折线的近似方法 Polyline3d p ...
- LL(1)文法的判断,递归下降分析程序
1. 文法 G(S): (1)S -> AB (2)A ->Da | ε (3)B -> cC (4)C -> aADC | ε (5)D -> b | ε 验证文法 G ...
- sql server的简单分页
--显示前条数据 select top(4) * from students; --pageSize:每页显示的条数 --pageNow:当前页 )) sno from students); --带条 ...
- 分布式Redis的分布式锁 Redlock
链接 Distributed locks with Redis 引言 之前自己在用redis来实现分布式锁的时候都是基于单个Redis实例,也就是说Redis本身是有单点故障的,Redis的官方文档介 ...
- ReactNative: 使用网页组件WebView组件
一.简介 在移动端开发中,很多时候需要嵌入一个网页来帮助实现某一个活动,这方式大大提高了活动快速迭代的灵活性,在RN中,同样也这么处理这种情况的.其实,这种混合式开发称为Hybird APP,它们就是 ...