赞 | 0 |
VIP | 0 |
好人卡 | 1 |
积分 | 1 |
经验 | 167035 |
最后登录 | 2013-9-15 |
在线时间 | 57 小时 |
Lv1.梦旅人 风之塞尔达
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 57 小时
- 注册时间
- 2005-10-22
- 帖子
- 2492
|
不知道lz说的那个index问题是什么...
但是滚动图片这样子是没问题的: (看了一下,写的和ls一样{/gg}, 不过ls整个图像用窗体的ox,oy来滑动, 不会把整行图像一起滑动吗?)
PS: 最后一张和第一张之间出现空白, 那是默认icon图第一张空白 - -
- class Window_IconRoll < Window_Base
- def initialize(x, y, w)
- super(x, y, w, 56);
- @bitmapIndex = 0;
- @pRectTop = Rect.new(0, 0, 1, 1)
- @pRectDown = @pRectTop.clone();
- update
- end
- def update()
- if (true == self.active)
- lastBitmapIndex = @bitmapIndex;
- if (Input.repeat?(Input::UP))
- @bitmapIndex += 1;
- @bitmapIndex %= 10;
- Sound.play_cursor
- move_icon(true, lastBitmapIndex, @bitmapIndex, 32);
- end
- if (Input.repeat?(Input::DOWN))
- @bitmapIndex += 9;
- @bitmapIndex %= 10;
- Sound.play_cursor
- move_icon(false, @bitmapIndex, lastBitmapIndex, 32);
- end
- end
- end
- def move_icon(bIsUpRoll, nLastBitmapIndex, nCurBitmapIndex, x)
- bitmap = Cache.system("Iconset")
- icon_rect(nLastBitmapIndex, @pRectTop);
- icon_rect(nCurBitmapIndex, @pRectDown);
- if (true == bIsUpRoll)
- nYTop = 0;
- nYDown = 24;
- while (0 < nYDown)
- self.contents.clear_rect(x, 0,
- @pRectTop.width, @pRectTop.height); # vx 的 clear 是可以局部刷新的
- nYTop -= 1;
- nYDown -= 1;
- self.contents.blt(x, nYTop, bitmap, @pRectTop, 255);
- self.contents.blt(x, nYDown, bitmap, @pRectDown, 255);
- Graphics.update
- end
- else
- nYTop = -24;
- nYDown = 0;
- while (0 > nYTop)
- nYTop += 1;
- nYDown += 1;
- self.contents.clear_rect(x, 0,
- @pRectTop.width, @pRectTop.height); # vx 的 clear 是可以局部刷新的
- self.contents.blt(x, nYTop, bitmap, @pRectTop, 255);
- self.contents.blt(x, nYDown, bitmap, @pRectDown, 255);
- Graphics.update
- end
- end
- end
- def icon_rect(icon_index, pRect_Recv)
- pRect_Recv.set(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
- end
- end
复制代码 |
|