找回密码
赶紧注册吧

QQ登录

只需一步,快速开始

当前位置: 交友网 > 技能必杀技 > 生活技能分享 >

C#如何实现图片分块延时显示

文章地址: http://www.tflove.com/jineng_sh/a21817.html
文章摘要:
假设以512x512的大小为一个“瓦片”,那么比方说,你能够在内存中先申明一个 List 来保留已经加载到Picture上的瓦片(用其左上角的坐标地位来对应到瓦片)。当捕捉滚动事件时,依据滚动条位置以及窗口大小,你可以盘算出当前窗口可见区域的四边规模,通过比拟这个范畴中所有的瓦片区域的每一个、是否在List中,就可以断定“还须要加载哪一个区域的瓦片”。例如已知的窗口的(转动之后)的左上角是r(Point类型),可以?for (var i = r.X; i = lt.X + 窗口宽度; i += 512)
时间:2013-09-20 22:36来源:未知 作者:admin 点击: 次 《C#如何实现图片分块延时显示

假设以512x512的大小为一个“瓦片”,那么比方说,你能够在内存中先申明一个 List 来保留已经加载到Picture上的瓦片(用其左上角的坐标地位来对应到瓦片)。当捕捉滚动事件时,依据滚动条位置以及窗口大小,你可以盘算出当前窗口可见区域的四边规模,通过比拟这个范畴中所有的瓦片区域的每一个、是否在List中,就可以断定“还须要加载哪一个区域的瓦片”。例如已知的窗口的(转动之后)的左上角是r(Point类型),可以?for (var i = r.X; i <= lt.X + 窗口宽度; i += 512) for (var j = r.Y; j < r.Y + 窗口高度; j += 512) { var a= (i/512) * 512; //当然你也可以采用移位操作 var b= (j/512) * 512; if( !lst.Any(t=> t.X==a && t.Y==b)) { 加载瓦片(a,b); lst.Add(new Point(a,b)); } } 到吾爱游戏|游戏喜好者论坛网站查看答复详情>> (责任编辑:admin)

分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏0