游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1533|回复: 3

2D游戏中,地图tile触发的问题

[复制链接]

2

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2006-1-31 15:46:00 | 显示全部楼层 |阅读模式
前段时间做RPG游戏,人物走的步长就是每个tile的宽度,事件的触发也得到很好的控制
所有事件都是靠地图的tile值来触发的
比如说 0 可以通过 1 不能通过 2 触发打斗系统 3 触发对话系统 等等

但是现在我想把人物行走的步长改为需要的具体数值
即是说,假如按一下方向键就走2个象素

这问题就来了,我发现地图上面的事件触发判断相当费事
需要将所走的象素值对应到相应的tile值,然后再进行判断,如果再给行走加上一些遇到障碍物的自动偏移量,那处理起来就更加罗索了
想请教一下,怎样才能很好的处理这些逻辑

11

主题

49

帖子

55

积分

注册会员

Rank: 2

积分
55
发表于 2006-2-1 21:35:00 | 显示全部楼层

Re:2D游戏中,地图tile触发的问题

我的做法你可以参考一下。
每个人有4个量表示他的坐标。X, Y, offsetX, offsetY.
前两个对应tile,后两个是人在tile中的偏移。
人在tile中心时偏移为0。
例如向右走。
void MoveRight(UINT offset)
{
  offsetX += step; // step = 1, 2, etc.
  if (offsetX > 32)  // the tile's width is 64
  {
    X++;
    offsetX = 64 - offsetX;
  }
}
判断事件时以tile坐标判断。

97

主题

590

帖子

590

积分

高级会员

Rank: 4

积分
590
QQ
发表于 2006-2-1 23:07:00 | 显示全部楼层

Re:2D游戏中,地图tile触发的问题

用一个获取当前TILE index的函数就行了,我的就是int TileIndex(x,y) 返回X,Y所对应的INDEX

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2006-2-6 12:53:00 | 显示全部楼层

Re:2D游戏中,地图tile触发的问题

二楼的方法好
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 09:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表