如何让sprite闪烁

yadg 2008-01-25 10:18:43
我的类里有个画棋盘的方法,一个画闪烁的棋子的方法,闪烁的棋子想用sprite来画,因为它有setVisible,我想只要设置它的visible就可以了,但是事实在我每次设置setVisible(false)后,画面上的棋子的图片还在。
我找了好多文章,大多是一个简单的drawFillRect,把整个屏幕都冲掉了,然后再重新画。如果重新画的话,还得再调用画棋盘的方法,多麻烦啊。请教大家是用什么方法画闪烁的精灵的。
...全文
261 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zengcity 2008-05-05
  • 打赏
  • 举报
回复
很少用sprite类,一般都是在一个定时刷新的死循环中操作.
Class_Raito 2008-04-25
  • 打赏
  • 举报
回复
1.申明一个计时的变量int time
2.在主线程中把time++;
3.if(time%5){g.drawImage("棋子",....);}//time%5 每隔一定时间画棋子。
4.如果没有必要尽量不要用Sprite GameCanvas等2.0的类。
lgtwboy 2008-04-21
  • 打赏
  • 举报
回复
区域重绘,哪里图像改变了重绘哪里
Canvas:
repaint(int x, int y, int width, int height)
Graphics:
setClip(int x, int y, int width, int height)
都可以
其实如果程序简单的话,区域重绘不见得比drawFillRect好多少
iYouGame 2008-04-20
  • 打赏
  • 举报
回复
11楼是说的setClip吧
yangjize1314 2008-04-16
  • 打赏
  • 举报
回复
用时钟,重画的时候就重画你棋子出现的那小块区域就好
sunny_jerry 2008-01-29
  • 打赏
  • 举报
回复
对,
使用线程绘制
JackZeng_sys 2008-01-28
  • 打赏
  • 举报
回复
方法有很多的,

关键是用线程!
prince58 2008-01-27
  • 打赏
  • 举报
回复
其实和动画片的过程着不多的,我没用过这个Sprite,我们用的都是自己写的sprite类。
网络咖啡 2008-01-26
  • 打赏
  • 举报
回复
闪烁实现的原理很简单:
就是可见状态和不可见状态互相切换的简单动画
dracularking 2008-01-25
  • 打赏
  • 举报
回复
setVisible(false)之后要重新刷新一下吧
xinfeng2006 2008-01-25
  • 打赏
  • 举报
回复
你的棋子可以是俩帧的,一帧是显示(加亮)的,另外一帧是不显示(暗)的,用Sprite.setFrame(),当然也要flushGraphics().
本人是新手,只是说说我的想法。
yanhan0615 2008-01-25
  • 打赏
  • 举报
回复
呵呵,是必须要重新画的啦,不然看不出变化来的
yadg 2008-01-25
  • 打赏
  • 举报
回复
我就是设置精灵的visible为false了,awt和vb里设置下就都可以,就j2me里怎么就不行哦,原来画上去的图片一直存在,怎么才能把它清掉呢。我不想用drawFillRect,那样的话,就连棋盘的线都清掉了,还得重新画线,太麻烦了
yanhan0615 2008-01-25
  • 打赏
  • 举报
回复
厄,我没有用过sprite,但是要做闪烁的效果肯定是要有一个线程,然后定时的设置它的visible属性,原理大概就是这样的
xinfeng2006 2008-01-25
  • 打赏
  • 举报
回复
应该要刷新的,可以试试啊,很简单的。yadg你试试!!!! flushGraphics();

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧