网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月17日漏签0天
vb游戏吧 关注:80贴子:250
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 下一页 尾页
  • 32回复贴,共2页
  • ,跳到 页  
<<返回vb游戏吧
>0< 加载中...

[教程]为2D游戏生成地图

  • 只看楼主
  • 收藏

  • 回复
  • Kelin
  • 颇具名气
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
有许多2D游戏,地图都起到关键性的作用,如图。现在在此教大家基本的地图生成技巧。


  • Kelin
  • 颇具名气
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
首先必须承认一些事实:
1,地图数据大多都保存在二维数组里。
2,每一个数组成员,如第(A,B)个元素,代表第A排第B列,它的值代表该区域的内容。
3,地图数据是地图数据,地图纹理是地图纹理,这两个其实没多大关联,只是最后渲染的时候地图是什么值便把对应的图片粘过去罢了


2025-06-17 16:28:51
广告
  • Kelin
  • 颇具名气
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
好。所有地图上都有最普遍存在的一种东西,比如沙漠地图中沙子最多。所以你应该先用For循环们 把数组内所有的元素都初始化成这个值,比如0代表沙子。


  • wkzfwkzf
  • 富有名气
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
前排围观


  • Kelin
  • 颇具名气
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
然后,寻找自己的规则,这需要看你要做什么游戏了。比如如果你需要这个效果:


  • Kelin
  • 颇具名气
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你需要把地图切开成上下两部分,上面的就不要了。最重要的是怎么切。


  • Kelin
  • 颇具名气
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
等等…


  • Kelin
  • 颇具名气
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
此时假设我们的地图是20*100大小的(高为20),则最开始最好选择折中切割,在第一列:把上面10个数据改成-1(代表什么都没有),下面10个数据依旧是0(沙子之类的)。


2025-06-17 16:22:51
广告
  • Kelin
  • 颇具名气
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
很重要的:你需要把你折中的临界点,也就是上文的(1,10)号元素标记一下存在一个新的变量里。


  • Kelin
  • 颇具名气
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
好的,现在你处理完了第一列,并且获得了一个临界元素。


  • Kelin
  • 颇具名气
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
进入第二列,先锁定(2,10),就是与前一个临界元素相平的元素,然后进入随机模式:


  • Kelin
  • 颇具名气
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
生成一个随机数0~2,如果是1,则无变化,还是(2,10);如果是0,则把纵坐标减1,返回(2,9);如果是2,便加一,返回(2,11);如果超出了范围(我们地图高是20,所以不能高出20,不低于0),则不变。


  • Kelin
  • 颇具名气
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
上面这个处理算法很重要,我们称之为切割函数。


  • Kelin
  • 颇具名气
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
其次是删除函数,就是把临界元素上方的元素赋予-1的值。一个For就可以解决。


2025-06-17 16:16:51
广告
  • Kelin
  • 颇具名气
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
总代码大概长这样:


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 32回复贴,共2页
  • ,跳到 页  
<<返回vb游戏吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示