
文章阅读
Flash关于游戏制作研究之在场景中移动---流行第一线
作者:佚名 | 来源:流行第一线 | 时间:2008-04-21 | 阅读权限:游客身份 | 会员币:0
场景是游戏中的一个重要元素,特别对于RPG游戏来说场景的数量就更多了,所以现在我为一些想做游戏的入门新手来讲解一下,游戏中的角色是如何在场景中实现移动的。今天我们要讲的是以游戏角色为中心的场景移动方式。
以游戏角色为中心的场景移动方式就是:除了到达场景的尽头之外,游戏角色始终在场景的中心的移动方式。现在我们也可分开来考虑问题了,我们可以分为:在未达到场景尽头和已到达场景尽头两种情况。在未到达场景尽头时,游戏角色是在场景的中心位置的,已到达场景尽头时是游戏的角色逐渐向尽头靠拢的动作。还要进行说明的一点是,在很多种情况中都是由视觉产生的错觉,很多人以为是角色的移动造成场景的移动,所以把注意力集中在角色中,其实在编写在场景移动的注意力应该集中在场景上,当按下方向键时场景就开始移动,使我们误认为是角色在移动了。所以我们要分析出最本质的东西才能让我们事半功倍,好接下来我们就开始说说如何制作吧...
首先我们找来一幅图片并将它导入到Flash中。然后新建一个MC,把图片拖进去并让它和原点对齐,此步的目的是为了我们日后编程的方便而做的。而这一个MC就是我们的场景了。接着我们把这个MC拖到主场景并取名为map。接着我们再新建一个MC,这个用来表示游戏中的角色,我们随便画一个圆点给它。我们把这个MC也拖进场景取名为CurPoint。接下来我们开始编写脚本,点击主场景第一帧,写下如下代码:
//以角色为中心的场景移动
//角色移动的速度
varspeed:Number=3;
this.onEnterFrame=function(){
if(Key.isDown(Key.UP)){
if(map._y>=0){
//达到上边界
map._y=0;
curPoint._y-=speed;
}else{
//未到达上边界,地图下移
if(curPoint._y>=Stage.height/2){
curPoint._y-=speed;
}else{
map._y+=speed;
}
}
}
if(Key.isDown(Key.DOWN)){
if(map._y<=-(map._height-Stage.height)){
//达到下边界
map._y=-(map._height-Stage.height);
curPoint._y+=speed;
}else{
//未到达下边界,地图上移
if(curPoint._y<=Stage.height/2){
curPoint._y+=speed;
}else{
map._y-=speed;
}
}
}
if(Key.isDown(Key.LEFT)){
if(map._x>=0){
map._x=0;
curPoint._x-=speed;
}else{
if(curPoint._x>=Stage.width/2){
curPoint._x-=speed;
}else{
map._x+=speed;
}
}
}
if(Key.isDown(Key.RIGHT)){
if(map._x<=-(map._width-Stage.width)){
map._x=-(map._width-Stage.width);
curPoint._x+=speed;
}else{
if(curPoint._x<=Stage.width/2){
curPoint._x+=speed;
}else{
map._x-=speed;
}
}
}
};
//角色移动的速度
varspeed:Number=3;
this.onEnterFrame=function(){
if(Key.isDown(Key.UP)){
if(map._y>=0){
//达到上边界
map._y=0;
curPoint._y-=speed;
}else{
//未到达上边界,地图下移
if(curPoint._y>=Stage.height/2){
curPoint._y-=speed;
}else{
map._y+=speed;
}
}
}
if(Key.isDown(Key.DOWN)){
if(map._y<=-(map._height-Stage.height)){
//达到下边界
map._y=-(map._height-Stage.height);
curPoint._y+=speed;
}else{
//未到达下边界,地图上移
if(curPoint._y<=Stage.height/2){
curPoint._y+=speed;
}else{
map._y-=speed;
}
}
}
if(Key.isDown(Key.LEFT)){
if(map._x>=0){
map._x=0;
curPoint._x-=speed;
}else{
if(curPoint._x>=Stage.width/2){
curPoint._x-=speed;
}else{
map._x+=speed;
}
}
}
if(Key.isDown(Key.RIGHT)){
if(map._x<=-(map._width-Stage.width)){
map._x=-(map._width-Stage.width);
curPoint._x+=speed;
}else{
if(curPoint._x<=Stage.width/2){
curPoint._x+=speed;
}else{
map._x-=speed;
}
}
}
};
>>相关资讯:
上篇文章:Flash制作好看的影片指导进度条---流行第一线 下篇文章:FLASH 8实例教程:瀑布动画制作方法---流行第一线
网友评论
以下网友评论只代表其个人观点,不代表悠久网的观点或立场
用户登陆

加载中……
相关文章
- 没有相关文章
