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

Project1

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

光标移动的问题。(1500分)

 关闭 [复制链接]

Lv2.观梦者

神隐的主犯

梦石
0
星屑
373
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

跳转到指定楼层
1
发表于 2008-7-23 17:26:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
先发脚本:

  1. class Window_Position < Window_Selectable
  2.   
  3.   #--------------------------------------------------------------------------
  4.   # ● 初始化对象
  5.   #     actor : 角色
  6.   #--------------------------------------------------------------------------
  7.   def initialize(x, y)
  8.     super(x, y, 400, 300)
  9.     @column_max = 4
  10.     @indexes = 0
  11.     @timeses = 0
  12.     @bitmap = []
  13.     for actor in $game_party.members
  14.       @bitmap.push(Cache.character(actor.character_name))
  15.     end
  16.     self.active = true
  17.     self.index = -1
  18.     refresh
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 刷新
  22.   #--------------------------------------------------------------------------
  23.   def refresh
  24.     self.contents.clear
  25.     @timeses += 1
  26.     #draw_location(0, 0)
  27.     case @indexes
  28.       when 0
  29.         index = 0
  30.       when 1,3
  31.         index = 1
  32.       when 2
  33.         index = 2
  34.     end
  35.     if @timeses % 15 == 0
  36.       @indexes += 1
  37.       for actor in $game_party.members
  38.         xs = Position::BAPN[2][1][0]
  39.         ys = Position::BAPN[2][3][1]
  40.         draw_characters(@bitmap[actor.id - 1], index, xs + actor.id * 50, ys,$game_actors[actor.id].direction)
  41.       end
  42.       @indexes = @indexes % 4
  43.       @timeses = 0
  44.     else
  45.       for actor in $game_party.members
  46.         xs = Position::BAPN[2][1][0]
  47.         ys = Position::BAPN[2][3][1]
  48.         draw_characters(@bitmap[actor.id - 1], index, xs + actor.id * 50, ys, $game_actors[actor.id].direction)
  49.       end
  50.     end
  51.     update
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 描绘行走图
  55.   #--------------------------------------------------------------------------
  56.   def draw_characters(character_name,character_index, x, y,dir = true)
  57.     return if character_name == nil
  58.    # bitmap = Cache.character(character_name)
  59.     n = character_index
  60.     if dir
  61.       src_rect = Rect.new((n%3) *32, 32, 32, 32)
  62.       self.contents.blt(x, y, character_name, src_rect)
  63.     else
  64.       src_rect = Rect.new((n%3) *32, 64, 32, 32)
  65.       self.contents.blt(x, y, character_name, src_rect)
  66.     end
  67.   # bitmap.dispose
  68.   end
  69.   #--------------------------------------------------------------------------
  70.   # ● 获取项目要描画的矩形
  71.   #     index : 项目编号
  72.   #--------------------------------------------------------------------------
  73.   def item_rect(index)
  74.     rect = Rect.new(0, 0, 0, 0)
  75.     rect.width = 32
  76.     rect.height = 32
  77.     rect.x = index % @column_max * rect.width
  78.     rect.y = index / @column_max * 32
  79.     return rect
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # ● 描绘场景
  83.   #--------------------------------------------------------------------------  
  84.   def draw_location(x, y)
  85.     bitmap = Bitmap.new("Graphics/Pictures/Lineup.png")
  86.     rect = Rect.new(0, 0, 0, 0)
  87.     rect.x = x
  88.     rect.y = y
  89.     rect.width = 128
  90.     rect.height = 128
  91.     self.contents.blt(x, y, bitmap, rect)
  92.     bitmap.dispose
  93.   end
  94. end
复制代码


问题是,在调用这个窗口的 时候,光标移动不能,麻烦大家帮我看看,是哪里错了?{/hx}
版务信息:本贴由楼主自主结贴~

《天空之城 —— 破碎的命运》

Lv1.梦旅人

梦石
0
星屑
65
在线时间
433 小时
注册时间
2007-5-1
帖子
993
2
发表于 2008-7-23 19:02:27 | 只看该作者
没仔细看,光标不动估计是缺少更新。

这只是一个窗口罢了,要调用它还需要一个场景(Scene)。

如果是在已有的场景里调用的话,请在update方法里加入新建窗口的更新。
如果是想在地图上直接调用,那么请再写一个专用的Scene,再在地图上调用Scene。

建议LZ看看下面的教程,对场景和窗口讲得比较仔细。
http://51cool.uu1001.com/read.php?tid=236&fpage=4
http://51cool.uu1001.com/read.php?tid=258&fpage=3
http://51cool.uu1001.com/read.php?tid=272&fpage=3


系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~

嗯,不能浪费签名了,打广告。本人的悲剧作品:
坑化游戏《龙之影》      R剧《星空》     小游戏《剑与拳头》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
帖子
2492

贵宾

3
发表于 2008-7-23 19:06:25 | 只看该作者
如果想在地图上使用  请直接使用Scene_Map...
现在无法测试  不过在窗口中描绘行走图, 是很费FPS的
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
373
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

4
 楼主| 发表于 2008-7-23 19:15:19 | 只看该作者
以下引用水镜风生于2008-7-23 11:02:27的发言:

没仔细看,光标不动估计是缺少更新。

这只是一个窗口罢了,要调用它还需要一个场景(Scene)。

如果是在已有的场景里调用的话,请在update方法里加入新建窗口的更新。
如果是想在地图上直接调用,那么请再写一个专用的Scene,再在地图上调用Scene。

建议LZ看看下面的教程,对场景和窗口讲得比较仔细。
http://51cool.uu1001.com/read.php?tid=236&fpage=4
http://51cool.uu1001.com/read.php?tid=258&fpage=3
http://51cool.uu1001.com/read.php?tid=272&fpage=3

[本贴由作者于 2008-7-23 11:04:25 最后编辑]


Scene 类很简单的:
  1. class Scene_Positions < Scene_Base
  2.   def start
  3.     @a = Window_Position.new(0,0)
  4.   end
  5.   def terminate
  6.     super
  7.     @a.dispose
  8.   end
  9.   def update
  10.     @a.refresh
  11.   end
  12. end
复制代码

以下引用link006007于2008-7-23 11:06:25的发言:

如果想在地图上使用  请直接使用Scene_Map...
现在无法测试  不过在窗口中描绘行走图, 是很费FPS的


我的想法就是在窗口中描绘的。

以下引用link006007于2008-7-23 11:06:25的发言:

不过在窗口中描绘行走图, 是很费FPS的


这个问题已经解决了。 FPS 稳定在 60 。{/hx}




先不说 按 B C 键的判定, 就连 上下左右都 没 反应。

弄了 一上午,还是不行。{/dk}

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
433 小时
注册时间
2007-5-1
帖子
993
5
发表于 2008-7-23 19:21:11 | 只看该作者
Scene里:

def update
    @a.refresh
  end

应该是:
def update
   @a.update
end

LX有错,不是updata……

嗯,不能浪费签名了,打广告。本人的悲剧作品:
坑化游戏《龙之影》      R剧《星空》     小游戏《剑与拳头》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

辉瑞中国首席研究员<

梦石
0
星屑
50
在线时间
142 小时
注册时间
2008-1-18
帖子
2129
6
发表于 2008-7-23 19:23:05 | 只看该作者
class Scene_Positions < Scene_Base
  def start
    @a = Window_Position.new(0,0)
  end
  def terminate
    super
    @a.dispose
  end
  def update
    @a.refresh
    @a.update
  end
end

我是脚本废柴,如有错,请大家自行更正

系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
来6r就是等某位仁兄的巨坑

褴褛着身行无端,囊中羞涩空心酸。
平生几无得意事,倒塔泡面宅寝室。
惟羡隔壁高帅富,雨露春风月夜声。
青丝无处觅其踪,只有硬盘苍井空。
莫云男儿空悲愁,鸿鹄岂不天际游。
坐断天下执鹿首,千百金帛万兜鍪。
夜深忽梦某年月,再见女神欲语迟。
吊丝终有逆袭日,木耳再无回粉时。
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
373
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

7
 楼主| 发表于 2008-7-23 19:25:37 | 只看该作者
以下引用dbshy于2008-7-23 11:23:05的发言:

class Scene_Positions < Scene_Base
def start
   @a = Window_Position.new(0,0)
end
def terminate
   super
   @a.dispose
end
def update
   @a.refresh
   @a.updata
end
end


依旧不动哦。{/dk}

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
433 小时
注册时间
2007-5-1
帖子
993
8
发表于 2008-7-23 19:27:26 | 只看该作者
@a.refresh多余,是update不是updata……

嗯,不能浪费签名了,打广告。本人的悲剧作品:
坑化游戏《龙之影》      R剧《星空》     小游戏《剑与拳头》
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
373
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

9
 楼主| 发表于 2008-7-23 19:29:25 | 只看该作者
以下引用水镜风生于2008-7-23 11:27:26的发言:

@a.refresh多余,是update不是updata……


因为要在Window里画行走图,不调用 refresh 就 动不 了了 .

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3133
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

10
发表于 2008-7-23 19:30:13 | 只看该作者
Orz,原类里面refresh最后不是有一个update啊
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-22 18:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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