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

Project1

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

[已经过期] 怎样写脚本才不会让游戏卡?

[复制链接]

Lv1.梦旅人

幻想天神

梦石
0
星屑
55
在线时间
166 小时
注册时间
2012-3-24
帖子
404
跳转到指定楼层
1
发表于 2013-5-5 16:53:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 风若·飘絮 于 2013-5-5 16:55 编辑

如果要做像《DNF单机版(PR做的那个)》,《神剑情天3》那样的华丽游戏,需要加载很多图片,怎样写脚本才不会让游戏卡(这两个游戏都挺卡的)?



我写了一个脚本,只有一个图片,但是CPU占用90%,大家也帮忙分析下吧。
  1. class Ui
  2.   def initialize
  3.   
  4.    @tu = Sprite.new
  5.    @tu.bitmap = RPG::Cache.title("人物状态.png")
  6.    @tu.x=0
  7.    @tu.y=0
  8.    @tu.z=200
  9.    @mmm_text2 = Sprite.new
  10.    @mmm_text2.bitmap = Bitmap.new(640,480)
  11.    @mmm_text2.bitmap.font.name = (["黑体"])
  12.    @mmm_text2.bitmap.font.size = 15
  13.    @mmm_text2.bitmap.font.color = Color.new(0,0,0,255)
  14.    @mmm_text2.x = 0
  15.    @mmm_text2.y = 0
  16.    @mmm_text2.z = 99999
  17.    @mmm_text2.bitmap.draw_text(60, 30, 200, 22,"#{$game_actors[1].level}")
  18.    @mmm_text2.bitmap.draw_text(150, 30, 200, 22,"#{$data_actors[1].name}")
  19.    @mmm_text2.bitmap.draw_text(65, 130, 200, 22,"#{$game_actors[1].maxhp}")
  20.    @mmm_text2.bitmap.draw_text(65, 160-7, 200, 22,"#{$game_actors[1].maxsp}")
  21.    @mmm_text2.bitmap.draw_text(65, 190-15, 200, 22,"无")
  22.    @mmm_text2.bitmap.draw_text(65, 220-22, 200, 22,"本系统不支持活力")
  23.    @mmm_text2.bitmap.draw_text(65, 250-28, 200, 22,"不支持")
  24.    

  25.    
  26.     # 执行过渡
  27.     #Graphics.transition
  28.     # 主循环
  29.     loop do
  30.       # 刷新游戏画面
  31.       Graphics.update
  32.       # 刷新输入信息
  33.       Input.update
  34.       # 刷新画面
  35.       refresh
  36.       # 如果切换画面就中断循环'
  37.      if Input.trigger?(Input::L)
  38.        break
  39.        end
  40.      end
  41.     # 准备过渡
  42.     #Graphics.freeze
  43.     # 释放窗口
  44.      @tu.dispose
  45.      @mmm_text2.dispose
  46. end

  47. def refresh
  48.    @tu.update
  49.    
  50. end

  51. end
复制代码

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

2
发表于 2013-5-5 17:03:13 | 只看该作者
把图片优化了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
3
发表于 2013-5-5 17:15:35 | 只看该作者
以RM的性能同时显示100张还是问题不大,但看lz给出的脚本,还没发现影响性能的原因。

就是@mmm_text2的位图最后忘记释放了,@mmm_text2.dispose后面加上
@mmm_text2.bitmap.dispose就行了

当然,短时间重复生成Ui实例上面的脚本自然就会卡,lz看看是不是这个原因
>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

Lv1.梦旅人

幻想天神

梦石
0
星屑
55
在线时间
166 小时
注册时间
2012-3-24
帖子
404
4
 楼主| 发表于 2013-5-5 17:29:46 | 只看该作者
沙漠点灰 发表于 2013-5-5 17:15
以RM的性能同时显示100张还是问题不大,但看lz给出的脚本,还没发现影响性能的原因。

就是@mmm_text2的位 ...


我是在事件里创建的实例。
请问要怎么写才规范呢?
(其实只有这个脚本也不卡,我只是觉得CPU90%不太正常,毕竟RM内置的菜单什么的都是CPU占用20%到40%)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
5
发表于 2013-5-5 17:46:03 | 只看该作者
风若·飘絮 发表于 2013-5-5 17:29
我是在事件里创建的实例。
请问要怎么写才规范呢?
(其实只有这个脚本也不卡,我只是觉得CPU90%不太正常 ...

界面的话就直接写在脚本编辑器里吧,Spriteset_Map是个不错的选择,生成与释放都在那写就行,
规范点就把硬编码换成常量就行。

点评

额,谢谢,电脑应该没什么问题  发表于 2013-5-5 20:03
P.S.我怀疑是lz电脑的问题,我的运行只占20%  发表于 2013-5-5 17:48

评分

参与人数 1星屑 +60 收起 理由
hcm + 60 感谢回答

查看全部评分

>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-26 01:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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