forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   RPG (http://forum.boolean.name/showthread.php?t=2476)

klopmaks 12.02.2007 20:39

Re: RPG
 
Спасибо :super:
Много чего узнал :teach:

vadya 13.02.2007 14:06

Re: RPG
 
ну помогите с камерой ПОЖАЛУЙСТА только это осталось сделать в моей РПГ

HolyDel 14.02.2007 02:35

Re: RPG
 
излогайте всю проблему пожалуйста.
камера привязанна к игроку и должна крутиться юез игрока (т.е. просто менять обзаор).
тогда так:
Код:

До главного цикла
campiv=createpivot(player)
cam=createcamera(campiv)
в главном цикле

turnentity campiv,mouseyspeed(),mousespeed(),0,0

суть:
припарентиваем пивот к игроку и крутим ЕГО. Притом камеру привязываем именно к этому пивоту (тогда она будет крутится вокруг игрока).

P/S/ возможно прийдется поставить минус куда нибудь.

vadya 14.02.2007 13:17

Re: RPG
 
спасибо но это не то.попробую подробно обьяснить свою проблему:
вот твой код для того чтобы игрок переместился в точку пика:

Graphics3D 640,480,16,2
SetBuffer BackBuffer()

pl=CreatePlane()
PointEntity cam,pl
EntityPickMode pl,2
;устанавливаем режим пика на 2 - т.е. полигональное
cub=CreateCube()
EntityColor cub,255,0,0

cam=CreateCamera(cub)
PositionEntity cam,0,30,-50

piv=CreatePivot()
While 1
If MouseHit(1)
e=CameraPick(cam,MouseX(),MouseY())
;пик по позиции мыша
PositionEntity piv,PickedX(),PickedY(),PickedZ()
;ставим пивот в точку пика
PointEntity cub,piv
EndIf
If EntityDistance(cub,piv)>1; если далеко до пивота, то двигаем куб
MoveEntity cub,0,0,1
EndIf
RenderWorld
Flip
If KeyDown(1) Then Exit
Wend
она нормально работает но когда перемечаешь игрока(пиком) то камера поворачивается вместе с игроком и не понятно куда двигаешся. по подсказке mr.DIMAS я поставил в цикл эту строчку PositionEntity cam,EntityX(Cub),10,EntityZ(Cub)-20 и все заработало.потом я хотел сделать поворот камеры относительно игрока когда нажимаешь на правую кнопку мыши, вот код:
Graphics3D 640,480,16,2
SetBuffer BackBuffer()

lit=CreateLight()
cub=CreateCube()
EntityColor cub,255,0,0
;устанавливаем режим пика на 2 - т.е. полигональное
campiv=CreatePivot(cub)
campivx=CreatePivot(campiv)
campivy=CreatePivot(campivx)


cam=CreateCamera(campivy)
PositionEntity cam,0,30,-50

pl=CreatePlane()
PointEntity cam,pl
EntityPickMode pl,2

piv=CreatePivot()
While 1
If MouseDown(2)
mx=MouseXSpeed()
my=MouseYSpeed()
MoveMouse GraphicsWidth()/2, GraphicsHeight()/2
TurnEntity campivx,0,-mx/10,0
TurnEntity campivy,my/10,0,0
EndIf
PositionEntity cam,EntityX(Cub),10,EntityZ(Cub)-20
If MouseHit(1)
e=CameraPick(cam,MouseX(),MouseY())
;пик по позиции мыша
PositionEntity piv,PickedX(),PickedY(),PickedZ()
;ставим пивот в точку пика
PointEntity cub,piv
EndIf
If EntityDistance(cub,piv)>1; если далеко до пивота, то двигаем куб
MoveEntity cub,0,0,1
EndIf
RenderWorld
Flip
If KeyDown(1) Then Exit
Wend

но камера не следит за игроком а когда убрать строчку
PositionEntity cam,EntityX(Cub),10,EntityZ(Cub)-20 все работает но не понятно куда двигается куб т.к. камера поворачивается вместе с кубом .вот моя проблема и я уже незнаю как это исправить ну помогите пожалуйста

mr.DIMAS 14.02.2007 18:16

Re: RPG
 
Расперло эту тему аж на пять страниц, а все началось с вопроса klopmaks'a. Ну ладно. Я постораюсь помочь.
Воть рабочий код RPG слизанный с моей рпг (Смотреть тему "Оцените")
:teach: :ok:

vadya 14.02.2007 18:27

Re: RPG
 
извини конечно но это тоже не то я это уже пробовал. если никто мне не сможет помощь наверное на худой конец так сделаю

mr.DIMAS 14.02.2007 21:30

Re: RPG
 
:mda: Блин ну как же. Если честно то ни врубаюсь. Воть держи мою РПГ мож чего поймешь. А так не могу помочь.:user:

vadya 17.02.2007 08:39

Re: RPG
 
спосибо за попытки я уже сам разобрался вот код из ГА и немного доработанная мною
Function CreatPlayer(x,y,z)
player=CreateCube()
PositionEntity player,x,y,z
pivot=CreatePivot()
PositionEntity pivot,EntityX(player),EntityY(player),EntityZ(play er)
End Function

Function CreateCam()
cam=CreateCamera(pivot)
PositionEntity cam,0,90,-150
End Function


Function UpdateCam()
If Abs(EntityPitch#(campivy))>u# RotateEntity campivy,u#*Sgn(EntityPitch#(campivy)),0,0
mx=MouseXSpeed()
my=MouseYSpeed()
PositionEntity pivot,EntityX(player),EntityY(player),EntityZ(play er)
If MouseDown(2) Then
TurnEntity pivot,0,-mx,0
EndIf
End Function

RegIon 02.04.2010 07:42

Ответ: RPG
 
Цитата:

А как убрать рисунок ???
Делай ресунок через Иф после рендерворлд

RegIon 02.04.2010 07:47

Ответ: RPG
 
Пивот от камеры перенти так в цикле до рендерворл

PositionEntity Пивот,EntityX(Какоито месш),Entityy(Какоито месш),EntityZ(Какоито месш), а камеру уже сам

Knightmare 02.04.2010 15:16

Ответ: RPG
 
Вложений: 1
Великолепно копнул, пустя каких-то 3 года чел наконец-то узнал решение!
Вложение 9777


Часовой пояс GMT +4, время: 06:55.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot