Движение
|
|
Unodeya | Дата: Воскресенье, 31 Мая 2009, 20:29 | Сообщение # 1 |
Молодой но талантливый
Группа: Участники
Сообщений: 64
Награды: 0
Замечания: 0%
Статус:
| Подскажите пожалуйста как реализовать Движение игрока с анимацией по кликанью мышки. Ну то есть как в РПГшках.) Заранее спасибо огромное!) Желательно примерчик!
|
|
| |
Unodeya | Дата: Понедельник, 01 Июня 2009, 09:57 | Сообщение # 2 |
Молодой но талантливый
Группа: Участники
Сообщений: 64
Награды: 0
Замечания: 0%
Статус:
| Вот моя наработка, нифега не работает!( ЧТо делаю не так? Мне нужно чтобы игрок бежал к точке с включённой анимацией... Пока он даже тупо переместиться не может.. Помогите пожалуйста! Что то я немного не понимаю( Code Global Quit=False Global Camera,Player Global PX,PZ,GO
Graphics3D 1024,768,32,2 SetBuffer BackBuffer()
CreatePlayer() CreateWorld() Repeat
UpdateGame()
UpdateWorld RenderWorld
Text 0,20,"Tris: " +TrisRendered()
If KeyHit(3) w=1-w WireFrame w Else If KeyHit(3) w=0 EndIf
If KeyHit(1)=1 Then Quit=True Flip
Until Quit End
Function CreatePlayer() player=LoadAnimMesh("models\robot\standing.3DS") LoadAnimSeq Player,"models/Robot/running.3ds" ScaleEntity Player,0.08,0.08,0.08 EntityRadius Player, 1.5
camera=CreateCamera(Player) PositionEntity camera,0,180,240
End Function Function UpdatePlayer() MH=1 MouseHit(1)
If MH1 player=CameraPick (camera, MouseX(),MouseY()) If player=plane
PX%=PickedX () PZ%=PickedZ ()
If PX>20 If PZ>20 If PX<255 If PZ<255
PositionEntity Player,PX,0,PZ
EndIf EndIf EndIf
PointEntity(camera,player)
End Function Function CreateWorld()
AmbientLight(255,255,255) plane=CreatePlane() textplane=LoadTexture("texture\40.jpg") ScaleTexture textplane,20,20 EntityTexture plane,textplane
End Function
Function UpdateGame()
UpdatePlayer()
End Function
|
|
| |
Unodeya | Дата: Понедельник, 01 Июня 2009, 13:47 | Сообщение # 3 |
Молодой но талантливый
Группа: Участники
Сообщений: 64
Награды: 0
Замечания: 0%
Статус:
| Вот))
|
|
| |
Unodeya | Дата: Понедельник, 01 Июня 2009, 15:07 | Сообщение # 4 |
Молодой но талантливый
Группа: Участники
Сообщений: 64
Награды: 0
Замечания: 0%
Статус:
| Спасибо спасибО!) Хоть приятно что я мыслил в правельном направлении)) спасибо тебе очень круто, а поворот модельки каким способом лучше поменять, чтобы модель смотрела на пивот? Как это лучше реализовать?
|
|
| |
Unodeya | Дата: Понедельник, 01 Июня 2009, 15:31 | Сообщение # 5 |
Молодой но талантливый
Группа: Участники
Сообщений: 64
Награды: 0
Замечания: 0%
Статус:
| Сделал анимацию когда игрок стоит. Проблемма в том что когда игра запускается игрок стоит бездвижно. Когда придёт после клика в точку, анимация когда он стоит есть. В чём ошибка? Заранее спасибо Code
Global Quit=False Global Camera,Player Global PX#,PZ# Global plane Global pivot
Graphics3D 1024,768,32,2 SetBuffer BackBuffer()
CreatePlayer() CreateWorld() Repeat
UpdateGame()
UpdateWorld RenderWorld
Text 0,20,"Tris: " +TrisRendered()
If KeyHit(3) w=1-w WireFrame w Else If KeyHit(3) w=0 EndIf
If KeyHit(1)=1 Then Quit=True Flip
Until Quit End
Function CreatePlayer() pTarget=CreatePivot() player=LoadAnimMesh("models\robot\standing.3DS") LoadAnimSeq Player,"models\Robot\running.3ds" ScaleEntity Player,0.08,0.08,0.08 EntityRadius Player, 1.5
Camera=CreateCamera() PositionEntity Camera,0,10,20
pivot=CreatePivot()
End Function Function UpdatePlayer()
MH1= MouseHit(1)
If MH1 pTaget=CameraPick (Camera, MouseX(),MouseY()) If PickedEntity()=plane
PX#=PickedX () PZ#=PickedZ ()
Animate Player,2,1,0,10
PositionEntity pivot,PX,0,PZ
EndIf EndIf ;AÈÌÀÖÈß ÊÎÃÄÀ ÈÃÐÎÊ ÑÒÎÈÒ È ÄÂÈÆÅÒÑß If EntityDistance(Player,pivot)>.1 PointEntity(Player,pivot) If AnimSeq(Player)=0 Animate Player,1,.5,1,10 EndIf MoveEntity Player,0,0,0.2 Else If AnimSeq(Player)=1 Animate Player,2,1,0,10 EndIf EndIf ;=============================== PointEntity(Camera,Player)
End Function Function CreateWorld()
AmbientLight(255,255,255) plane=CreatePlane() textplane=LoadTexture("texture\40.jpg") ScaleTexture textplane,20,20 EntityTexture plane,textplane EntityPickMode plane,2
End Function Function UpdateGame() UpdatePlayer() End Function ;Function CurveValue#(current#,destination#,curve) ; current#=current#+((destination#-current#)/curve) ; Return current# ; End Function
|
|
| |
Unodeya | Дата: Понедельник, 01 Июня 2009, 20:35 | Сообщение # 6 |
Молодой но талантливый
Группа: Участники
Сообщений: 64
Награды: 0
Замечания: 0%
Статус:
| СПАСИБО ОГРОМНОЕ! Блин немогу плюс дать( как появится возможность обязательно! Единственный вопрос, бьюсь с проблеммой, как сделать чтобы камера двигалась за игроком. Когда делаю CreateCamera(player) она тупо прилипает к нему, хочу сделать чтобы двигалась за ним плавненько когда игок идёт)) СПАСИБО ТЕБЕ ЕЩЁ РАЗ! РЕСПЕКТ!
|
|
| |
Unodeya | Дата: Понедельник, 01 Июня 2009, 21:27 | Сообщение # 7 |
Молодой но талантливый
Группа: Участники
Сообщений: 64
Награды: 0
Замечания: 0%
Статус:
| СПАСИБО)) Огромное дружище)) Я по своему сделал))
|
|
| |