首页 |缤纷校园 |心理援助 |英语世界 |公务员 |考研天地 |资格考试 |电脑认证 |免费论文 |实用文档 |求职就业 |论坛 |网络课堂 |留言版
 电脑认证首页     考试专题 考试提醒 计算机等级考试 计算机认证水平考试 IT认证 论坛
 最近更新
· [学习辅导]关于制作地图时矩阵的使用…
· [学习辅导]游戏及学习控制管理器
· [学习辅导]使用Rational进行C++转换的…
· [计算机专题]教你用word2007制作一个封…
· [计算机专题]讲一下DOS下SVGA视频模式的…
· [计算机专题]二级C:键盘扫描码大全
· [学习辅导]access如何用代码在“默认…
· [计算机专题]access如何解决组合框无法…
· [试题下载]ORCALDBA有关回滚段管理试…
· [学习辅导]Oracle三十而立曾借IBM东风…
 精品课程
· [医卫类精品课程]名师主讲口腔执业医师…
· [精品课程推荐]公务员考试权威专家网…
· [医卫类精品课程]中医执业医师考试网上…
· [医卫类精品课程]临床助理医师网络辅导…
· [工程类精品课程]公路监理工程师考试网…
· [医卫类精品课程]执业药师考试网上辅导…
· [医卫类精品课程]名师执业医师考试网上…
· [工程类精品课程]物业管理师考试名师团…
· [财经类精品课程]名师主讲会计从业资格…
· [工程类精品课程]城市规划师考试名师在…
 考试动态
· [二级考试动态]北京:07年下半年计算机等…
· [二级考试动态]2008年4月全国计算机等级考…
· [二级考试动态]2007年下半年计算机等级考…
· [二级考试动态]天津:2007年下半年全国计…
· [二级考试动态]计算机技术与软件专业技术…
· [二级考试动态]2007年计算机等级考试改期…
· [二级考试动态]河北07计算机考点出故障考…
· [二级考试动态]2007年贵州省计算机补考7月…
· [二级考试动态]了解考试系列:二级C语言的…
· [二级考试动态]了解考试系列:二级VC++语…
 试题下载
· [试题下载]计算机等级二级C语言程序设…
· [试题下载]计算机等级二级C语言程序设…
· [试题下载]计算机等级二级C语言程序设…
· [试题下载]计算机等级二级C语言程序设…
· [试题下载]计算机等级二级C语言程序设…
· [试题下载]计算机等级二级C语言程序设…
· [试题下载]计算机等级二级C语言程序设…
· [试题下载]计算机等级二级C语言程序设…
· [试题下载]计算机等级二级C语言程序设…
· [试题下载]2006年4月计算机等级考试二…
 学习辅导
· [学习辅导]关于制作地图时矩阵的使用…
· [学习辅导]游戏及学习控制管理器
· [学习辅导]使用Rational进行C++转换的…
· [学习辅导]access如何用代码在“默认…
· [学习辅导]如何设置ACCESS2003(运行…
· [学习辅导]以指定工作组文件启动MDB文…
· [学习辅导]怎样用代码隐藏、最大化、…
· [学习辅导]在ACCESS2000中如何通过程…
· [学习辅导]关于捕获VCL没有处理的Win…
· [学习辅导]个性凸现的动画特技效果
 

关于制作地图时矩阵的使用(适合新手)

文章录入:admin    责任编辑:admin   2007-8-28 13:08:43  来源:考试大  点击数:
 

  通过制作前面的游戏,我个人认为,利用矩阵来辅助制作游戏地图是很方便的,也很适合初学者掌握,因此特意将思想和方法总结一下,希
  望对大家有所帮助:
  首先,应用矩阵的基础是将屏幕分割,例如应用这段程序:
  #include<graphics.h>
  #include<conio.h>
  int main()
  {
  int gd=VGA,gm=VGAHI,x,y;
  initgraph(&gd,&gm,'');
  setcolor(2);
  for(x=19;x<600;x=x+40)
  for(y=19;y<440;y=y+40)
  rectangle(x,y,x+40,y+40);
  getch();
  closegraph();
  return(0);
  }

  这样就将屏幕内的(19,19,600,440)内分割成了11行、15列的方格,则可以建立如下矩阵:
  map[11][15]=
  { {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
  };
  这样建立好了对应的矩阵,矩阵建立好了就要使之与屏幕建立对应

  for(my=0;my<11;my++)
           for(mx=0;mx<15;mx++)
         if(map[my][mx]==1) tree(19+40*mx,19+40*my);/*这只是例子,具体画什么你自己决定*/
  这样就和前面建立的分割好的屏幕联系起来了,要注意,在这里屏幕的纵坐标要放在矩阵前面的括号里,而横坐标要放在后面的括号里,这样

  才是真正正确的对应关系。
     至此,矩阵和屏幕地图对应起来了,如果以后要加新的绘图元素,以后只要在开始修改矩阵的数字,再在上面的循环内加上
     if(map[my][mx]==N) picture(19+40*mx,19+40*my);
  就可以方便的修改和制作地图了。
     以上只是个示范,相信在实际制作地图的时候以上的分割数量远达不到精度要求,因而实际要分割到多精细你要自己从新设计,有一点,  割的越精细则矩阵越大,所以不要过于贪求精细而分割太小,否则到时候成千上万的矩阵元素定义就有的你忙了。


 

  • 上一个文章:

  • 下一个文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    关于本站 - 广告服务 - 站内导航 - 网站声明 - 友情链接 - 联系我们
    Copyright©2003-2008 www.dastu.com, All Rights Reserved.

    心语心愿科技(北京)有限责任公司 版权所有

    鄂ICP备05000022号