上期我们说到我已经做好了游戏的基本界面,现在,我将在这空荡荡的世界里添加一棵树

效果图

(有的人还可以看到罕见的水上树呢!)

贴代码咯:

#include <windows.h>
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <ctime>
using namespace std;
void SetColor(unsigned short ForeColor,unsigned short BackGroundColor)
{HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(hCon,(ForeColor%16)|(BackGroundColor%16*16));
}
void gotoxy(int x, int y) {COORD pos;pos.X=x;pos.Y=y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
void Sky()//淡蓝色
{SetColor(9,9);//第一个9 前景色 第二个9 背景色cout<<" ";
}
void water()
{SetColor(1,1);cout<<" ";
}
void grass()
{SetColor(11,10);cout<<" ";
}
void treeye()//树叶 英语没学好TAT
{SetColor(10,11);cout<<" ";}
void treegan()//同理,这是树干
{SetColor(0,0);cout<<" ";}
void PaintColor()
{for(int i=0;i<30;i++){for(int j=0;j<110;j++) Sky();}for(int i=30;i<35;i++){for(int j=0;j<110;j++) grass();}
}void Cloud(int line)
{//srand((unsigned)time(NULL));int n=rand()%70;gotoxy(n,line);for(int i=0;i<8;i++){SetColor(15,15);cout<<" ";}cout<<endl;
}
void SummonLake()
{//srand((unsigned)time(NULL));int n=rand()%70;gotoxy(n,29);for(int i=0;i<14;i++){for(int j=0;j<2;j++)water();}cout<<endl;
}
void Tree()
{//srand((unsigned)time(NULL));int n=rand()%70;gotoxy(n,28);treegan();gotoxy(n,27);treegan();gotoxy(n,26);treegan();gotoxy(n-3,25);for(int i=0;i<6;i++) treeye();gotoxy(n-1,24);for(int i=0;i<4;i++) treeye();
}
int main()
{system("mode con cols=110 lines=35");srand((unsigned)time(NULL));SetConsoleTitle("My Life");PaintColor();Tree();Cloud(3);SummonLake();while(1) ;return 0;
}

为了不影响游戏体验,烦请各位关掉自己心爱的输入法,否则在草地最下面会出现一个蓝蓝的东西!

或许我们可以多生成几棵树:

我们在生成树的时候,同时也用了一种新算法避开了湖面,这样就不会看见小特性了。

好啦,贴代码:

#include <windows.h>
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <ctime>
using namespace std;
int waters,watere;//湖泊开始位置 湖泊结束位置
void SetColor(unsigned short ForeColor,unsigned short BackGroundColor)
{HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(hCon,(ForeColor%16)|(BackGroundColor%16*16));
}
void gotoxy(int x, int y) {COORD pos;pos.X=x;pos.Y=y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
void Sky()//淡蓝色
{SetColor(9,9);//第一个9 前景色 第二个9 背景色cout<<" ";
}
void water()
{SetColor(1,1);cout<<" ";
}
void grass()
{SetColor(11,10);cout<<" ";
}
void treeye()//树叶 英语没学好TAT
{SetColor(10,11);cout<<" ";}
void treegan()//同理,这是树干
{SetColor(0,0);cout<<" ";}
void PaintColor()
{for(int i=0;i<30;i++){for(int j=0;j<110;j++) Sky();}for(int i=30;i<35;i++){for(int j=0;j<110;j++) grass();}
}void Cloud(int line)
{//srand((unsigned)time(NULL));int n=rand()%70;gotoxy(n,line);for(int i=0;i<8;i++){SetColor(15,15);cout<<" ";}cout<<endl;
}
void SummonLake()
{//srand((unsigned)time(NULL));int n=rand()%70;waters=n;watere=n+14;gotoxy(n,29);for(int j=0;j<2;j++){for(int i=0;i<14;i++)water();gotoxy(n,30);}cout<<endl;
}
void SummonT(int n)
{gotoxy(n,28);treegan();gotoxy(n,27);treegan();gotoxy(n,26);treegan();gotoxy(n-3,25);for(int i=0;i<6;i++) treeye();gotoxy(n-1,24);for(int i=0;i<4;i++) treeye();
}
void Tree()
{//srand((unsigned)time(NULL));int n=rand()%70;while(n>=waters && n<=watere){n=rand()%70;}gotoxy(n,28);treegan();gotoxy(n,27);treegan();gotoxy(n,26);treegan();gotoxy(n-3,25);for(int i=0;i<6;i++) treeye();gotoxy(n-1,24);for(int i=0;i<4;i++) treeye();for(int i=n;i<=104;i+=9){if(i>=waters && i<=watere) continue;else SummonT(i);}
}
int main()
{system("mode con cols=110 lines=35");srand((unsigned)time(NULL));SetConsoleTitle("My Life");PaintColor();SummonLake();Tree();srand((unsigned)time(NULL));Cloud(3);while(1) ;return 0;
}

代码越来越乱了……

好了,第一期挖的坑全部填上了,下面我们来分析一下小人的移动规则:

小人的移动空间可以看成一个一维字符数组move[110],如果小人在字符数组内遇到了障碍字符'#',那么就代表有丘陵或者是到地图尽头了。

同时,当小人穿过树时,会显示树而非显示小人。

想期待可以通过A和D移动的小人吗?

欢饮关注下期~

《从0开始制作小游戏》快捷跳转
从0开始制作小游戏:2
从0开始制作小游戏:1

从0开始制作小游戏(二)相关推荐

  1. 你的第一个微信小游戏,教你从0开始制作小游戏(一)

    一.下载微信开发者工具和Cocos Creater 1.微信开发者工具 微信开放文档 2.Cocos Creater Cocos引擎_游戏开发引擎 发布流程就是先在cocos中编写你的游戏,然后生成对 ...

  2. 从0开始制作小游戏(一)

    从今天开始,我将会不定期更新这个系列,欢迎各位订阅(实际上也不过是记得看就行) 那么,首先我们要明确,我们要做什么,明确整体游戏的框架. 在这里,我想带做一款高自由度的2D游戏,类似<我的世界& ...

  3. 用JAVA制作小游戏——推箱子(二)

    本篇博客主要是推箱子游戏界面功能的代码讲解. 首先先给出这段代码的部分运行截图: 重难点: 游戏界面主要有五个重难点: 固定好地图的位置 地图的显示 构建菜单栏 读取地图数据 玩家操作功能实现 地图的 ...

  4. 用JAVA制作小游戏——飞机大战(二)

    本篇博客是对飞机大战游戏使用代码的展示 重难点: 首先需要鼠标能够控制战机,使鼠标在窗口内时始终能够使战机的位置与鼠标相同,实现鼠标控制战斗机移动. 其次需要能够以一定的速度产生子弹和敌机,并且以一定 ...

  5. python游戏制作软件_python制作小游戏(二)

    下载W3Cschool手机App,0基础随时随地学编程导语 T_T突然发现N久以前我还做过一个系列??? 利用Python制作小游戏??? 好吧,既然做了,就有头有尾吧~~~ 本期我们将制作一个类似八 ...

  6. 用JAVA制作小游戏——飞机大战(三)

    本篇博客是对飞机大战游戏项目完整代码的展示 详细代码讲解: 用JAVA制作小游戏--飞机大战(一) 用JAVA制作小游戏--飞机大战(二) 最下方附整个程序的文件下载链接 代码展示 主界面 impor ...

  7. 用JAVA制作小游戏——推箱子(一)

    本篇博客是对推箱子游戏首页代码的展示 效果图: 难点: 在背景图上添加按钮. 由于直接使用add方法,会变成图片一块区域,按钮一块区域,彼此互不重叠,形成的界面效果不太好,因此用了JLayeredPa ...

  8. 【从入门到入土系列】C语言制作小游戏-贪吃蛇:Copy+运行即可另附注释

    系列文章 本系列持续更新中,欢迎您的访问! 系列简介 本系列由唐文疏撰写,负责记录博主的学习生涯中的一点一滴.独乐乐不如众乐乐,故此分享给大家.欢迎大家一起讨论.学习和批评指点. 博主只是一个普普通通 ...

  9. python能制作游戏吗_如何用Python制作小游戏

    要想用Python制作小游戏,必须要安装一个插件Pygame 什么是Pygame Pygame是跨平台Python模块,专为电子游戏设计,包含图像.声音.建立在SDL基础上,允许实时电子游戏研发而无需 ...

最新文章

  1. Tor 出口节点将运行在图书馆的电脑上
  2. getvalue函数怎么使用_Java中的构造函数——通过示例学习Java编程(14)
  3. 微信小程序循环不同列表实现动态点击隐藏
  4. python tip
  5. 设计模式(二)--里氏替换原则(Java的继承规范)
  6. 【重难点】【Redis 03】缓存雪崩、缓存穿透、缓存击穿、Redis 的内存过期策略、并发读写和双写
  7. POJ-1087 A Plug for UNIX 网络流
  8. Django 强大的ORM之增删改查
  9. android 车牌识别 开源,在android上的车牌识别
  10. 【技术认证题库】SCCA理论aDesk-2考试【初级】
  11. 区块链核心技术演进之路-共识机制演进
  12. Java 基本数据类型的转换 Java 基础(二)
  13. 计算机接口技术相关设计,计算机接口技术的特点与应用设计研究
  14. 【第18周复盘】要不要带小朋友们参加一下天池的Python训练营?
  15. 适用于遥感图像处理的神经网络
  16. mysql基本语句大全6_mysql基本sql语句大全(基础用语篇)
  17. 有一个程序员男友是一种怎么样的体验?
  18. 【华为OD机试真题】1023 - 按身高和体重排队(JAVA C++ Python JS) | 机试题+算法思路+考点+代码解析
  19. Personalized Re-ranking for Recommendation
  20. MySQL设置白名单,允许单个IP或某段节点登录

热门文章

  1. HTM-16.3+VSR3.5——基于MVD多视点视频编解码实验
  2. 英雄战歌服务器因维护关闭,英雄战歌 - 服务退换中心 - 腾讯游戏
  3. 对`timescale的深入理解
  4. Xilinx Spartan6-XC6SLX16-22FTG256(2022.3.31)
  5. 批量卸载软件脚本python_Python练习小工具——批量删除同名电子书保留指定格式...
  6. Matlab中设置横纵轴、图例以及更改横纵轴字体大小
  7. USB转串口线的使用方法
  8. 5红5绿6蓝穿手链c语言,人教统编版小学奥数系列6-1-5和倍问题C卷.doc
  9. 【转】关于浏览器的内核以及几个小问题
  10. WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connec