站内搜索

搜索
热搜: 活动 交友 discuz

iFAction 世界需要你的想象力!

[请帮忙] 鼠标点击移动角色怎么做?

9

主题

28

帖子

186

积分

iF平原

Rank: 4

积分
186

摩点支持者

发表于 2020-11-15 22:16:05 | 显示全部楼层 |阅读模式
不是按住是点击移动,双击或按住某个键加速这种怎么做?

9

主题

28

帖子

186

积分

iF平原

Rank: 4

积分
186

摩点支持者

 楼主| 发表于 2020-11-16 03:15:58 | 显示全部楼层
还有默认的ENTER键确认能改成左键点击确认吗?

3

主题

60

帖子

2036

积分

iF城镇

Rank: 6Rank: 6

积分
2036
发表于 2020-11-16 04:48:40 | 显示全部楼层
这是ARPG模式?

9

主题

28

帖子

186

积分

iF平原

Rank: 4

积分
186

摩点支持者

 楼主| 发表于 2020-11-16 20:22:15 | 显示全部楼层

是的。。。。。。。。。。。

3

主题

60

帖子

2036

积分

iF城镇

Rank: 6Rank: 6

积分
2036
发表于 2020-11-17 00:34:25 | 显示全部楼层
复制下面代码到通用触发器里自动执行就行了,每行后面有中文标注的代码内容你可以修改
  1. var deviationX=10 //指定X坐标偏差值,数字越小偏差越小
  2. var deviationY=10 //指定Y坐标偏差值,数字越小偏差越小
  3. keyRate=16 //按住某键加速, (16)shift键,可以修改指定的按键
  4. if(typeof clickswitch=="undefined"){
  5. clickswitch=false
  6. }
  7. if(typeof clicktime=="undefined"){
  8. clicktime=0
  9. }
  10. if(typeof actiontype=="undefined"){
  11. actiontype=false
  12. }
  13. if(IInput.mouseButton == 0 && IInput.down){ //0为鼠标左键,1为鼠标右键,2为鼠标中键
  14. clickX=Math.abs(RV.NowMap.getView().ox)+IInput.dx
  15. clickY=Math.abs(RV.NowMap.getView().oy)+IInput.dy
  16. running=false
  17. actiontype=true
  18. }
  19. if(actiontype==true && IInput.up){
  20. if(clicktime<=0){
  21. clicktime=20 //双击时间间隔
  22. }else{
  23. running=true
  24. }
  25. actiontype=false
  26. clickswitch=true
  27. }
  28. if(clickswitch==true){
  29. var xx=RV.NowMap.getActor().getUserRect().centerX-clickX //计算人物到点击坐标之间的X坐标差,修改此处可使人物到达点击位置的X坐标
  30. var yy=RV.NowMap.getActor().getUserRect().centerY-clickY //计算人物到点击坐标之间的Y坐标差,修改此处可使人物到达点击位置的Y坐标
  31. var angle=Math.atan(Math.abs(yy/xx))*180/Math.PI
  32. if(xx<=0 && yy>=0){
  33. if(angle>=10 && angle<=80){
  34. RV.NowMap.getActor().moveRightUp()
  35. }else if(angle>=0 && angle<10){
  36. RV.NowMap.getActor().moveRight()
  37. }else{
  38. RV.NowMap.getActor().moveUp()
  39. }
  40. }else if(xx>0 && yy>0){
  41. angle+=90
  42. if(angle>=100 && angle<=170){
  43. RV.NowMap.getActor().moveLeftUp()
  44. }else if(angle>=90 && angle<100){
  45. RV.NowMap.getActor().moveUp()
  46. }else{
  47. RV.NowMap.getActor().moveLeft()
  48. }
  49. }else if(xx>=0 && yy<=0){
  50. angle+=180
  51. if(angle>=190 && angle<=260){
  52. RV.NowMap.getActor().moveLeftDown()
  53. }else if(angle>=180 && angle<190){
  54. RV.NowMap.getActor().moveLeft()
  55. }else{
  56. RV.NowMap.getActor().moveDown()
  57. }
  58. }else if(xx<0 && yy<0){
  59. angle+=270
  60. if(angle>=280 && angle<=350){
  61. RV.NowMap.getActor().moveRightDown()
  62. }else if(angle>=270 && angle<280){
  63. RV.NowMap.getActor().moveDown()
  64. }else{
  65. RV.NowMap.getActor().moveRight()
  66. }
  67. }
  68. if(running==true || IInput.isKeyPress(keyRate)){
  69. RV.NowMap.getActor().speedUp()
  70. }
  71. if(Math.abs(xx)<=deviationX && Math.abs(yy)<=deviationY){
  72. clickswitch=false
  73. }
  74. }
  75. if(clicktime>0){
  76. clicktime-=1
  77. }
复制代码


9

主题

28

帖子

186

积分

iF平原

Rank: 4

积分
186

摩点支持者

 楼主| 发表于 2020-11-21 14:40:05 | 显示全部楼层
1084736768 发表于 2020-11-17 00:34
复制下面代码到通用触发器里自动执行就行了,每行后面有中文标注的代码内容你可以修改

这里面哪个是修改移动速度的呀?

3

主题

60

帖子

2036

积分

iF城镇

Rank: 6Rank: 6

积分
2036
发表于 2020-11-21 17:40:39 | 显示全部楼层
ooyd 发表于 2020-11-21 14:40
这里面哪个是修改移动速度的呀?

这里面不能修改移动速度,不过你可以用触发器改变人物基础速度,或者在游戏脚本里修改人物基础速度
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系我们
QQ群:977585123
iFAction下载
Windows客户端
反馈
意见建议
iFAction

iFAction

京ICP备15053274号-1

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.