当前位置:编程学习 > VB >>

VB制作人物地图移动

使用VB制作 人物行走时的效果 就好比是传奇的(传奇是用VB做的吧) 当人物向上走时 地图就是向下移动. 我想问如何才能做到这样.需要用到什么控件和知识.
答案:没用到什么控件

只是算法而已

在游戏中有一个整图的定义,还有一个屏幕显示全图部分区域的定义

人物在全图中的坐标为X,Y

如果人物超出屏幕显示区域,就要移动屏幕显示区域,在重绘时地图就动了

这个是我写过的游戏中的一个代码

    '窗体显示的范围坐标
    If (MoveX <> 0 Or MoveY <> 0) And (MainRole.fx > Form_W - MapMove_W - Main.Role.Width Or MainRole.fx < MapMove_W Or MainRole.fy > Form_H - MapMove_H - Main.Role.ScaleHeight Or MainRole.fy < MapMove_H) Then
        '移动要显示的地图,正常的移动要排除
        If (MoveX < 0 And MainRole.fx < MapMove_W) Or (MoveX > 0 And MainRole.fx > Form_W - MapMove_W - Main.Role.Width) Then Form_X = Form_X + MoveX
        If (MoveY < 0 And MainRole.fy < MapMove_H) Or (MoveY > 0 And MainRole.fy > Form_H - MapMove_H - Main.Role.ScaleHeight) Then Form_Y = Form_Y + MoveY
        '防止地图超出边界
        If Form_X < 0 Then Form_X = 0
        If Form_Y < 0 Then Form_Y = 0
        If Form_X > Main.MapB.ScaleWidth - Form_W Then Form_X = Main.MapB.ScaleWidth - Form_W
        If Form_Y > Main.MapB.ScaleHeight - Form_H Then Form_Y = Main.MapB.ScaleHeight - Form_H
    End If

屏幕上看见的只是一个矩形区,如果人物坐标超出这个区,就要计算怎么移动这个区,使人物回到屏幕上,我这边有一个100像素的边,使人物不会超出屏幕才移动地图,而是始终保持在屏幕中心左右的位置

*************************************************************************************

这是罗培羽写的一个教程里面的代码,这个教程网上可以找到,你可以看一下

'横坐标
If Xn <= main.Width / 30 Then
    Xs = Xn
    Xm = 0
Else
If Xn >= main.MapB.Width - main.Width / 30 Then
    Xs = Xn + Xm
    Xm = main.Width / 15 - main.MapB.Width
Else
Xs = main.Width / 30
Xm = Xs - Xn
End If
End If
'纵坐标
If Yn <= main.Height / 30 Then
    Ys = Yn
    Ym = 0
Else
If Yn >= main.MapB.Height - main.Height / 30 Then
    Ys = Yn + Ym
    Ym = main.Height / 15 - main.MapB.Height
Else
Ys = main.Height / 30
Ym = Ys - Yn
End If
End If

人物超出屏幕的1/30边就移动屏幕上的地图

上一个:什么是vb啊
下一个:VB菜单栏在哪里?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,