蓝鸥(www.lanou3g.com)是一家集产、学、研、创为一体的综合性移动互联网研发培训机构,致力于iOS开发、Unity3D游戏开发、Android开发、HTML5前端开发和Web安全攻防等技术人才的培养。
usingSystem;
namespaceMyFirstGame
{
classMainClass
{
publicstaticvoidMain(string[]args)
{
//游戏即将启动时做一些操作
constintmapW=46;//地图宽度
constintmapH=16;//地图高度
//定义常量
constintemptyTiledMap=0;//空砖块
constintTBTiledMap=1;//顶部和底部砖块
constintLRTiledMap=2;//左右两边的砖块
constintPlayer=3;//玩家
//游戏初始化变量
boolisOver=false;//游戏是否结束
int[,]mapData=newint[mapH,mapW];//地图数据
string[,]mapView=newstring[mapH,mapW];//地图视图
intposW=1;//玩家在W的位置
intposH=1;//玩家在H的位置
//初始化地图数据
for(inti=0;i
for(intj=0;j
//j将地图初始化为空砖块
mapData[i,j]=emptyTiledMap;
//如果砖块处于最上方侧或最下方,就初始化为TBTiledMap
if(i==0||i==mapH-1){
mapData[i,j]=TBTiledMap;
}elseif(j==0||j==mapW-1){
//如果砖块处于最右侧或最左侧,就初始化为LRTiledMap
mapData[i,j]=LRTiledMap;
}elseif(i==posW&&j==posH){
//当前位置是玩家
mapData[i,j]=Player;
}
}
}
//游戏主循环
while(!isOver){
//游戏启动后,主循环张做一些操作
//计算机计算数据->将数据转成视图->把视图显示出来->获取玩家的事件更新数据
//刷新地图
for(inti=0;i
for(intj=0;j
//从地图数据中获取数据,决定砖块如何显示
//取出砖块数据
inttiledData=mapData[i,j];
//砖块视图
stringtiledView="";
//确定砖块的显示
switch(tiledData){
caseemptyTiledMap:
tiledView="";
break;
caseTBTiledMap:
tiledView="-";
break;
caseLRTiledMap:
tiledView="|";
break;
casePlayer:
tiledView="P";
break;
}
//将砖块视图存放到地图视图中
mapView[i,j]=tiledView;
//将每行的每个字符拼接到字符串中
//str+=mapView[i,j];
}
}
//显示地图
for(inti=0;i
//创建一个用于接收一行信息的字符串
stringstr="";
for(intj=0;j
//将每行中的所有字符串进行拼接
str+=mapView[i,j];
}
//打印一行的内容
Console.WriteLine(str);
}
//保存玩家当前位置
intoldPosW=posW;
intoldPosH=posH;
//等待用户输入
//获取用户输入的按键字符串
stringkey=Console.ReadKey().KeyChar.ToString();
if(key=="W"||key=="w"){
//让玩家向上移动
if(posH>1){
posH--;
}
}elseif(key=="S"||key=="s")
{
//让玩家向下移动
if(posH2){
posH++;
}
}elseif(key=="A"||key=="a"){
//让玩家向下左移动
if(posW>1){
posW--;
}
}elseif(key=="D"||key=="d"){
//让玩家向下右移动
if(posW2){
posW++;
}
}elseif(key=="Q"||key=="q"){
//如果按下Q退出游戏
isOver=true;
continue;
}
//更新地图数据
mapData[oldPosH,oldPosW]=emptyTiledMap;
mapData[posH,posW]=Player;
}
Console.WriteLine("客观,下次再来哦");
}
}
}
网友评论