VB制作人物地图移动
使用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边就移动屏幕上的地图