查看: 1900|回复: 1

[已经解决] 关于Sprite描画的一个问题

[复制链接]
梦石
0
星屑
50
在线时间
79 小时
注册时间
2007-6-23
回帖
147
发表于 2013-11-5 09:58:13 来自手机 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 fangyc 于 2013-11-5 19:38 编辑

代码先不贴了,只是遇到一个奇怪的问题,想了解一下Sprite的描画原理

问题大概是这样的

我自己建了一个类,叫 Sprite_BattleActor,继承 Sprite_Base 类
作用是在战斗画面里显示我方角色的行走图

于是我在 Spriteset_Battle 中创建了 4 个 Sprite_BattleActor 的实例,并且把对应的 Game_Actor 的实例传入其中

Sprite_BattleActor 中从 Game_Actor 里取得角色的行走图名和编号,然后用 self.bitmap.blt() 方法进行描画

于是问题来了,Sprite_BattleActor 实际显示在画面上的,全都是同一个人物
但是我描画的时候明明用的都是不同的 Game_Actor ……

在 self.bitmap.blt() 之前我用p输出过行走图名和编号,确定都是不同的人物,但为何显示出来的时候都变成同一个人(队伍里最后一个角色)了?

然后我试了用 self.bitmap.draw_text() 把人物的名字打出来,结果4个名字最后显示的全是最后一个人的名字

于是想请教一下大家为什么会变成这样……

现在手头没有代码,如果需要的话我晚上可以把部分代码贴出来。
梦石
0
星屑
50
在线时间
79 小时
注册时间
2007-6-23
回帖
147
 楼主| 发表于 2013-11-5 19:33:21 | 显示全部楼层
自己找到原因了!

原来 self.bitmap 是通过 Cache 读进来的,所以对 self.bitmap.blt 的时候其实就是对用了这个 Cache 所有bitmap进行描画了,所以所有的人物都变一样的了……
只要自己new一个Bitmap就可以解决问题了~~
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部