怎么实现游戏主角依靠鼠标点击来移动?
construct2吧
全部回复
仅看楼主
level 9
普通的亚洲之美
楼主
目前我在用C2制作一个游戏,游戏主角在地图上的移动一直是靠键盘控制(添加一个8direction很方便就能实现键盘移动了)。但是怎么实现鼠标移动呢?
2014年08月10日 13点08分
1
level 9
rexrainbow
鼠标用来指定移动目的地,然后用move to behavior或path finding移过去。
2014年08月10日 13点08分
2
rexrainbow
其中一种方式
2014年08月10日 13点08分
普通的亚洲之美
我先是读取鼠标XY坐标,然后找不到move to这个功能
2014年08月10日 14点08分
傅老師_台灣
回复 普通的亚洲之美 :
https://tieba.baidu.com/p/3198913586
这是
@rexrainbow
做的插件
2014年08月10日 15点08分
普通的亚洲之美
回复 傅老師_台灣 :我明天再找找。
2014年08月10日 15点08分
level 13
傅老師_台灣
MoveTo范例:
[无效] http://pan.baidu.com/s/1mg0ZF64
2014年08月10日 15点08分
3
普通的亚洲之美
谢谢老师,我刚刚才发现游戏自带的范例里也有鼠标点击移动
2014年08月11日 12点08分
普通的亚洲之美
呃,范例里面的是把人物添加一个子弹属性,点击后就添加方向和速度。
2014年08月11日 12点08分
傅老師_台灣
回复 普通的亚洲之美 :喔~<Bullet>也可以的。我个人觉得在目标座标既定的状况下,MoveTo比较顺手。自带范例值得一看的喔~
2014年08月11日 13点08分
普通的亚洲之美
回复 傅老師_台灣 :老师,还有一个问题:怎么才能实现主角在道路上行走?比如设定2个城市之间有条弯弯曲曲的公路,我点击某个城市,主角就沿着弯弯曲曲的公路走过去,而不是走直线。
2014年08月11日 14点08分
level 8
飞天星星小子
可以用 lerp来实现,平滑移动
2014年08月10日 15点08分
4
普通的亚洲之美
我用了老师推荐的MOVETO插件完成了这个功能
2014年08月11日 14点08分
傅老師_台灣
lerp也可以的喔
2014年08月11日 14点08分
level 9
普通的亚洲之美
楼主
就是这种路线
2014年08月12日 13点08分
5
普通的亚洲之美
@sppam
@傅老師_台灣
2014年08月12日 13点08分
傅老師_台灣
我猜这个特性比较像
@rexrainbow
的board + hextx + moveto 可呈现的
2014年08月12日 13点08分
普通的亚洲之美
研究了20天Construct 2了,感觉离完成游戏原形都还好远啊。
2014年08月12日 13点08分
sppam
回复 普通的亚洲之美 :可以先做点简单的,或至少把大工程拆成一个一个小目标。。。否则直接做比较大型的,周期太久,很容易坚持不住。另外其实也不用完全符合路径啦,差不多大概就可以,比较大的拐弯处设置一下转弯就好
2014年08月12日 14点08分
level 11
sppam
路径拆成的点也可以二次利用。刚才我突然我想起前玩的一个游戏,在地图上点要去的城市后会在路径上出现很多小点,有些点上还会有事件,走过去就会触发。如果之前有拆出点存到到数组里的话,也可以实现这种效果。
2014年08月12日 14点08分
6
傅老師_台灣
他如果要做太阁4的风格的话,势必要用<Board>、<HexTX>、<MoveTo>了。
2014年08月12日 15点08分
rexrainbow
如果在board上, 有给board专用的path finding, 没问题.
2014年08月12日 15点08分
level 13
傅老師_台灣
@普通的亚洲之美
,太阁4是六角型地图(HEX)。他并不是忠实地延著路弯,而是以欲行经的各个六角型中点连接移动路径。
2014年08月12日 15点08分
7
普通的亚洲之美
哦,那我把游戏里的道路改直一点,方便设置
2014年08月12日 15点08分
傅老師_台灣
你往前追溯光荣前面的作品,就会发现他们历史模拟系列的地图都是六角型地图,看三国志一代最明显。太阁4的地图应该也是,但是他在画路的时候应该有用数学演算法加入一些抖动,所以画出来的路每条都不一样。
2014年08月12日 15点08分
傅老師_台灣
人物其实在一个看不到的六角格状棋盘上行走。(我这麼说可以理解吗?)
2014年08月12日 15点08分
普通的亚洲之美
回复 傅老師_台灣 :明白,六角格的边框隐藏起来了。老师你早点休息,我准备睡了
2014年08月12日 16点08分
1