| Mirage Source http://miragesource.net/forums/ |
|
| Mouse Movement (my way) http://miragesource.net/forums/viewtopic.php?f=210&t=419 |
Page 1 of 1 |
| Author: | William [ Wed Aug 23, 2006 11:54 am ] |
| Post subject: | Mouse Movement (my way) |
(cause I love MS so much, I decided to release it.. hope somebody likes it.) This tutorial can not be moved to any other forums, neither linked or anything. You can only come here to use it. I will not explain anything were to put the things, it's pretty simple. So figure it out on your own. Code: If Button = vbRightButton Then If Not InEditor Then Call CharMove(X, Y) End If End If Code: Public Sub CharMove(ByVal X As Single, ByVal Y As Single)
'Finds the heading way with our mouse position Dim iScrX As Integer Dim iScrY As Integer Dim lAngle As Long iScrX = X - frmMirage.picScreen.Left - Player(MyIndex).X * 32 iScrY = Y - frmMirage.picScreen.top - Player(MyIndex).Y * 32 iScrY = -iScrY If iScrY = 0 Then lAngle = 0 Else lAngle = Atn(iScrX / iScrY) * 180 / 3.14159265 End If If (lAngle >= -45 And lAngle <= 0) Or (lAngle <= 45 And lAngle >= 0) Then If iScrY > 0 Then DirUp = True DirDown = False DirLeft = False DirRight = False If CanMove = True Then Call SetPlayerDir(MyIndex, DIR_UP) Call CheckMovement End If Else DirUp = False DirDown = True DirLeft = False DirRight = False If CanMove = True Then Call SetPlayerDir(MyIndex, DIR_DOWN) Call CheckMovement End If End If ElseIf (lAngle > 45 And lAngle <= 90) Or (lAngle < -45 And lAngle >= -90) Then If iScrX < 0 Then DirUp = False DirDown = False DirLeft = True DirRight = False If CanMove = True Then Call SetPlayerDir(MyIndex, DIR_LEFT) Call CheckMovement End If Else DirUp = False DirDown = False DirLeft = False DirRight = True If CanMove = True Then Call SetPlayerDir(MyIndex, DIR_RIGHT) Call CheckMovement End If End If End If End Sub |
|
| Author: | lordgivemick [ Thu Dec 21, 2006 1:10 am ] |
| Post subject: | |
umm the first part goes into frm mirage right well where do i place the second part to get it to work. or is there more to it thats not there? |
|
| Author: | William [ Thu Dec 21, 2006 2:47 am ] |
| Post subject: | |
The 2:nd part can go anywere. The first part goes in picscreen_mousemove and mouseclick |
|
| Author: | lordgivemick [ Thu Dec 21, 2006 11:12 pm ] |
| Post subject: | |
i like that that it works with out any glicthes but how do you get it to move where you click instead of haveign to click repetedly to get to a place. like you clikc 5 tiles away and stop on that tile where you click instead of haveign to click in front of the person to move. |
|
| Author: | William [ Fri Dec 22, 2006 2:53 am ] |
| Post subject: | |
This code makes it so you hold the mouse down and the character moves, you will need to edit a lot to make it work so you click on "one" place and it moves to that point. |
|
| Author: | Dragoons Master [ Fri Dec 22, 2006 3:49 pm ] |
| Post subject: | |
Actualy it isn't that hard. I added 3 variables named MoveTo,MoveToX,MoveToY. MoveTo is setted to true when you click the screen and does not click on an npc or player. then, inside Sub CheckMovement() change the line "If IsTryingToMove Then" to "If IsTryingToMove Or MoveTo = True Then" and inside "Function CanMove()" you can add, right under "Dir = GetPlayerDir(MyIndex)" a check to see if MoveTo is true, liek this: "If MoveTo = True Then". If it is, it moves the player to the position wanted just using the AI you developed. To make it move just change the value of this 4 variables: Code: DirUp
DirDown DirLeft DirRight changing them from false to true, depending on the direction you want the player to go to. |
|
| Author: | lordgivemick [ Fri Dec 22, 2006 7:23 pm ] |
| Post subject: | |
thanx for the help dragoons Master. ill try this rigth away. |
|
| Page 1 of 1 | All times are UTC |
| Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |
|