设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2192|回复: 4
打印 上一主题 下一主题

[已经解决] 离成功就差一步的时候出了错误~救命啊!

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1912
在线时间
1554 小时
注册时间
2013-4-13
帖子
917
跳转到指定楼层
1
发表于 2013-4-17 18:46:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 沉滞的剑 于 2013-4-18 15:55 编辑

自己设计了一个技能树系统
每个技能都有一个数组坐标来定位位置
但是才用新的位置绘制以后会导致两个问题,
一是选项实际排列方式和展示的不一样,鼠标还可以操作但是键盘就显得没规律了。
然后就是无法滚屏,因为程序不知道的命令实际位置在哪里。
我想如果我能解决排列问题,就能修改按钮方法控制翻页,我想把一个多维数组重新排序,另一个数组按照前一个数组的方式排序。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

数组A 存放的是 技能数组[a1,a2,a3,*...]
数组B 存放的是 技能位置数组 [[x,y],[x,y],*[,]...]
AB的长度是相等的
我想对数组B进行排序,让它按x的值从小到大的顺序排列,x相等的话考虑y(每个技能的坐标唯一)
让后A能按照B的顺序进行相同的排序
应该怎么实现?

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
2
发表于 2013-4-17 22:37:51 | 只看该作者
本帖最后由 沙漠点灰 于 2013-4-17 22:41 编辑
  1. i = 0
  2. a= [5,4,2,6]
  3. b=[[1,1],[1,2],[0,1],[0,2]]
  4. c = b.inject({}){|x,y|x[a[i]] = y;i+=1;x}
  5. a.sort!{|x,y|c[x] <=> c[y]}
  6. b.sort!
  7. p a
  8. p b
复制代码
a是数组A
b是数组B
其他变量可自定义名称(i,   x,y,   c)
>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

3
发表于 2013-4-17 22:54:06 | 只看该作者
直接用Hash类建立一一对应关系。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1912
在线时间
1554 小时
注册时间
2013-4-13
帖子
917
4
 楼主| 发表于 2013-4-18 13:31:33 | 只看该作者
沙漠点灰 发表于 2013-4-17 22:37
a是数组A
b是数组B
其他变量可自定义名称(i,   x,y,   c)

不好意思,能详细介绍下sort的用法么?谢谢了。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2013-2-8
帖子
424
5
发表于 2013-4-18 15:50:14 | 只看该作者
沉滞的剑 发表于 2013-4-18 13:31
不好意思,能详细介绍下sort的用法么?谢谢了。
  1. a <=> b                     #a>b => 1; a=b => 0; a<b => -1
  2. array.sort {|a, b| a <=> b} # => new_array; 按一定顺序比较array中的元素,然后进行顺序排序,可以简写为 array.sort
  3. array.sort {|a, b| b <=> b} # => array.sort.reverse
  4. array.sort!                 # => array = array.sort
复制代码
楼上的方法就是利用了哈希表的对应特性,利用一个数组对另一个数组进行排序。

点评

太感谢了,看懂了  发表于 2013-4-18 15:54
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-5 14:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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