|
主题: 移动大背景
|
 yhxiang49
职务:普通成员
等级:1
金币:0.0
发贴:65
注册:2002/2/25 14:53:54
|
#12002/7/20 12:38:32
我在移动大背景时(3200*2400的背景图),速度变得很慢(因为我里面用的组件很多)。屏幕刷新很慢,换小屏就一切正常。但是我的要求不是不能小于800*600。 请问如何能解决这个问题。如何优化程序。 请各位给点见意。
谢! 急,急,急,急,急,急!
|
 thelcg
职务:普通成员
等级:1
金币:0.0
发贴:106
注册:2002/6/23 16:32:23
|
#22002/7/21 12:32:02
property pSprite property pLocH
on beginSprite me pSprite = sprite(me.spriteNum) pLocH = float(pSprite.locH) end
on MoveLand me, h pLocH = pLocH - h CheckLocH(me) pSprite.locH = pLocH end
on CheckLocH me if pLocH > 640 then pLocH = pLocH - 1280 end if if pLocH < -640 then pLocH = pLocH + 1280 end if end
|
 thelcg
职务:普通成员
等级:1
金币:0.0
发贴:106
注册:2002/6/23 16:32:23
|
#32002/7/21 12:34:01
You can move the picture or graphic, and set the graphic same to the stage.
|
 D计划-混沌
职务:管理员
等级:6
金币:15.2
发贴:3528
注册:2007/4/9 9:48:37
|
#42002/7/21 16:19:31
www.director-online.com/buildArticle.cfm?id=841用imaging lingo滚动 关于优化,方法是有的,但是具体情况要到细节才能有方案 如果你的背景图要求的精度不是很高,比如说地图等,就可以直接把图 变为1600*1200,然后在scroll时放大一倍 还可以像一些游戏一样用 [list]来显示(特别是有规律的背景)
|
 yhxiang49
职务:普通成员
等级:1
金币:0.0
发贴:65
注册:2002/2/25 14:53:54
|
#52002/7/23 8:34:58
thelcg在上个帖子中说 引用: property pSprite property pLocH
on beginSprite me pSprite = sprite(me.spriteNum) pLocH = float(pSprite.locH) end
on MoveLand me, h pLocH = pLocH - h CheckLocH(me) pSprite.locH = pLocH end
on CheckLocH me if pLocH > 640 then pLocH = pLocH - 1280 end if if pLocH < -640 then pLocH = pLocH + 1280 end if end
这种方法我想不能实现,因为我的背景是至少是的3200*2400以上的而且是loch, locv都可以移动,我目前遇到是可以移动但速度不行。谢!
|
 laosan
职务:普通成员
等级:1
金币:0.0
发贴:78
注册:2001/10/26 10:18:07
|
|
 玉制小人
职务:普通成员
等级:1
金币:1.0
发贴:205
注册:2002/9/19 15:29:00
|
#72002/9/20 14:38:17
把舞台的部分动态拷贝是一个不错的主意,上面的方法不是不能用哦,
|
 night_5d
职务:普通成员
等级:2
金币:1.0
发贴:275
注册:2000/12/15 21:24:38
|
#82002/9/21 10:38:35
directorX在上个帖子中说 引用: 看来某些高级用户真是徒有虚名呀! 真正的解决方法当然不是移动大图,动得了吗?不妨将显示在舞台上的部分动态拷贝过来,这样不就解决了吗! 怎么拷贝?如果你要问的话,我劝你离Director远点吧!
directorX说话真是气人,如果你把目光放的广一些的话,我想你就会改变你的想法了。关于移动大面积背景图的问题,在国外的游戏中已经解决了,而且解决得非常好,虽然不知道是如何实现的,但我知道可以实现。 并且我想编程的人都知道,要实现一种功能或效果可以有很多种实现办法,我们只是选择一种最适合的办法来实现罢了,如果抱着一种办法不放的话,我想是不会有什么进步的,只能说是一种稍微高级点的编程机器而已,因为不会更新和创造。 另外,我想这个论坛的出现,是为了让大家有一个可以方便交流的空间,促使我们可以共同进步,说大一些的话是提高我国的多媒体技术水平。正像yhxiang49的签名一样。 我们兴趣相同,我们来到这里; 我们渴望进步,我们来到这里; 我们需要帮助,我们来到这里; 我们乐于助人,我们来到这里。 如果每个人留言都像您这么咄咄逼人的话,我想在这里您将得不到任何东西,不仅仅是技术方面的。 有点灌水嫌疑了,但实在是看不过,才多说几句的。对于移动大背景的问题,应该值得好好研究一番,我想我可以到macromedia的论坛上去问问,虽然我得E文不是很好,但是我想我可以外国的高手们看懂,并且可以感受到我们的技术交流是在一种平等和谐的气氛中进行的,而不是某人高高在上,说话咄咄逼人。
[img]http://61.144.28.245/hjc/web/non-cgi//usravatars/paladin.gif[/img] I thirst for freedom
|
 玉制小人
职务:普通成员
等级:1
金币:1.0
发贴:205
注册:2002/9/19 15:29:00
|
#92002/9/21 13:56:08
我同意看法,不同意你的过激的批评。。交流应尽量在和平环境中,但是directorX也发新帖道过歉了,是你没看而尔
|
 truka
职务:普通成员
等级:1
金币:0.0
发贴:54
注册:2001/5/21 17:13:42
|
#102002/10/18 14:09:31
如果不更改stage大小,一切方法都是徒劳的, 除非使用256色显示。
|
 小春老师
职务:普通成员
等级:2
金币:1.0
发贴:257
注册:2001/7/14 14:23:45
|
#112002/10/25 23:18:30
将你的大背景导入到flash中,输出成png格式,图片会小很多,然后再倒入dr,我想会好些.
|
 不要笑我
职务:普通成员
等级:1
金币:0.0
发贴:20
注册:2002/7/24 17:20:42
|
#122002/11/5 11:18:17
怎样才能动态拷贝,请各位指点一下!谢谢!!
|
 改将
职务:普通成员
等级:1
金币:0.0
发贴:102
注册:2006/2/11 1:14:46
|
#132002/12/1 23:27:28
使用image lingo里面的copyPixels()函数,这是最好的方法,其他的方法都是不太可取的了!具体看54zq提供的连接,方法非常的清楚!
|
 directorX
职务:普通成员
等级:1
金币:1.0
发贴:168
注册:2002/12/24 11:28:55
|
#142003/1/8 10:35:33
拷贝的方法可以考虑,我写了一个行为,效果很好,你可试试!
--by wjq
property mySprite --sprite ref property copyRect --copy area rect property sourceMember --map property oldLocz,clickpos property isMousedown --mousedown:true; mouseup:false property lastRect property pWidth,pHeight
Global gMapMember
on beginsprite me mySprite=sprite(me.spritenum) sourceMember=member(gMapMember,2) pWidth=sourceMember.width pHeight=sourceMember.Height vLeft=(pWidth-800)/2 vTop=(pHeight-600)/2 vRight=vLeft+800 vBottom=vTop+600 copyRect=rect(vLeft,vTop,vRight,vBottom) mySprite.member.image.copypixels(sourceMember.image,mySprite.member.rect,copyRect)
cursor 260 end
on mousedown me clickpos=the mouseloc lastRect=copyRect isMousedown=true cursor 290 end
on mouseupoutside me mouseup me end
on mouseUp me isMousedown=false cursor 260 end
on exitframe me if not isMousedown then exit dxy=the mouseloc-clickpos copyRect=lastRect.offset(-dxy[1],-dxy[2]) if copyRect.left<0 then copyRect=copyRect.offset(-copyRect.left,0) if copyRect.top<0 then copyRect=copyRect.offset(0,-copyRect.top) if copyRect.right>pWidth then copyRect=copyRect.offset(pWidth-copyRect.right,0) if copyRect.bottom>pHeight then copyRect=copyRect.offset(0,pHeight-copyRect.bottom) mySprite.member.image.copypixels(sourceMember.image,mySprite.member.rect,copyRect) end
|
 directorX
职务:普通成员
等级:1
金币:1.0
发贴:168
注册:2002/12/24 11:28:55
|
#152003/1/9 17:02:17
我又改了一下,能自适应舞台!
|