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

Project1

 找回密码
 注册会员
搜索

请教一个文字问题(有点深度)

查看数: 1873 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2011-1-8 15:52

正文摘要:

话说绘制文字用的draw_text很影响效率,所以在文字没有变化前都不会去重绘制它,但有时候,一些信息的快速变化,会导致整个游戏的速度明显降低。比如:物品栏中,鼠标移动到物品上需要显示物品的详细信息,当你在几 ...

回复

亿万星辰 发表于 2011-1-8 17:49:17
1、预处理,提前把当前界面内需要的文字等内容预先draw好
2、鼠标指向后1秒再开始draw

点评

跟我想的差不多,等鼠标指向后延迟一小段时间再进行绘制,纠结的draw_text```  发表于 2011-1-8 18:00

评分

参与人数 1星屑 +2 收起 理由
panpan8609 + 2 一种可行的处理方法

查看全部评分

enghao_lim 发表于 2011-1-8 17:35:42
的确是draw_text的问题,这东西很邪恶,唉...不说了。
我很想知道你为什么高速draw_text,基本上我一个图鉴信息是描绘满萤幕,鼠标来回切换fps顶多掉3,应该沒你说的那么严重才对。
别跟我说附带的文字显示,你试试在loop 里面显示一段文字,然后用for循环··少点··就20边··按F2,看看你的帧数率吧···draw_text对游戏性能有严重影响
还有这样的测试不管是什么显示执行都会沒剩fps,loop根本沒停……

点评

可能你理解有误,因为我显示信息是基于该物品是否处于高亮状态,也就是鼠标是否在该物品上,基本上是,你的手移动多快,draw_text的刷新就有多快  发表于 2011-1-8 18:03
hitlerson 发表于 2011-1-8 16:22:03
本帖最后由 hitlerson 于 2011-1-8 16:29 编辑

不是draw_text的问题吧
我这个显示卡片信息的鼠标来回拖,显示一点都不卡
  1.   #---------------------------------------------------------------------------
  2.   # ● 描绘全卡片
  3.   #---------------------------------------------------------------------------
  4.   def a_draw_item(index,n=0)
  5.     return if @dataa[index] == nil
  6.     card_id = @dataa[index][0]
  7.     number  = @dataa[index][1]
  8.     index   -= @n
  9.     x = 554
  10.     y = index*44 + 76
  11.     return if index > 9
  12.     return if index < 0
  13.     @card_bitmap_a = [] if @card_bitmap_a == nil
  14.     @card_bitmap_b = [] if @card_bitmap_b == nil
  15.     @card_bitmap_a[index] = Sprite.new(@viewport5)
  16.     @card_bitmap_a[index].x, @card_bitmap_a[index].y = x, y
  17.     @card_bitmap_a[index].z = index + 1000
  18.     bitmap = RPG::Cache.picture("card/#{CARD::CARD[card_id][1][0]}")
  19.     @card_bitmap_a[index].bitmap = bitmap
  20.     @card_bitmap_b[index] = Sprite.new(@viewport5)
  21.     @card_bitmap_b[index].x, @card_bitmap_b[index].y = x, y
  22.     @card_bitmap_b[index].z = index + 10000
  23.     #@card_bitmap_b[index].bitmap = bitmap
  24.     @card_bitmap_b[index].bitmap = Bitmap.new(160,32)
  25.     @card_bitmap_b[index].bitmap.font.size = 12
  26.     #@card_bitmap_b[index].bitmap.font.color = Color.new(255,255,255,255)
  27.     @card_bitmap_b[index].bitmap.draw_text(26, -6 , 212, 32,  CARD::CARD[card_id][0].to_s, 0)
  28.     @card_bitmap_b[index].bitmap.draw_text(26, 8 , 16, 32, CARD::CARD[card_id][2][3].to_s, 1)
  29.     @card_bitmap_b[index].bitmap.draw_text(40, 8 , 24, 32, CARD::CARD[card_id][2][4].to_s, 2)
  30.     @card_bitmap_b[index].bitmap.draw_text(65, 8 , 24, 32, CARD::CARD[card_id][2][5].to_s, 2)
  31.     @card_bitmap_b[index].bitmap.draw_text(0 , 10, 24, 32, number.to_s, 2)
  32.     @card_bitmap_a[index].zoom_x, @card_bitmap_a[index].zoom_y = 0.1, 0.1
  33.   end
复制代码
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-28 11:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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