forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Обзор мыши как в Gothic I-II (http://forum.boolean.name/showthread.php?t=12917)

zinador 14.07.2010 21:19

Обзор мыши как в Gothic I-II
 
всем доброго вечера.
Имееться код

Код:

player=CreateSphera()
camera=CreateCamera(player)
....
mxspd#=MouseXSpeed()*0.25
myspd#=MouseYSpeed()*0.25
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 
campitch#=EntityPitch(player)+myspd#
If campitch#<-85 Then campitch#=-85
If campitch#>85 Then campitch#=85
RotateEntity player,campitch#,EntityYaw(player)-mxspd#,EntityRoll(player)

Вообщем его суть такова,
Это обзор мышью и куда мышь смотрит туда и поворачиваеться сфера(player),а мне нужно так:
По оси Y идет обзор только camera ,а сфера (player) не крутиться вверх,а По оси X идет обзор и camera и поворачиваеться сфера (player)

Maxim1441 14.07.2010 21:37

Ответ: Обзор мыши как в Gothic I-II
 
И че проблем? Верти по y только камеру, а не перса. А по оси Х - только перса, т.к. камера припарентненная.

zinador 14.07.2010 21:47

Ответ: Обзор мыши как в Gothic I-II
 
Дак я пытался но проблема в том что обзор вопще проподает

Maxim1441 14.07.2010 21:53

Ответ: Обзор мыши как в Gothic I-II
 
Не ври мне!:-D Кинь весь код, посмотрю...

zinador 14.07.2010 21:55

Ответ: Обзор мыши как в Gothic I-II
 
Код:

Include"xors3d.bb"
xGraphics3D 640,480,32,0,1
xSetBuffer xBackBuffer()

;Start Constants
T_PLAYER=1
T_TERRAIN=2
;End Constants

;Game Objects
player=xCreateSphere()
camera=xCreateCamera(player)
light=xCreateLight()
terrain=xLoadMesh("content/terrain.3ds")
sky=xCreateSphere()
skytex=xLoadTexture("content/skies01/sky001.jpg")

;End Game Objects

;Start Game Objects Update
xEntityTexture sky,skytex
xEntityFX sky,16
xScaleEntity sky ,50000,50000,50000
xRotateEntity light,90,0,0
xPositionEntity camera,0,1,-5
xScaleEntity terrain ,10,10,10
xPositionEntity terrain ,-300,0,-800
xCameraRange camera,1,500000
;End Game Objects Update

;Start Types
xEntityType player,T_PLAYER
xEntityType terrain,T_TERRAIN
;End Types

;Start Collisions
xCollisions T_PLAYER,T_TERRAIN,2,2
;End Collisions

;Start Main Loop
While Not xKeyDown(1)

;Start SkyBox Event
xTurnEntity sky,0,-.004,0
dxsky#=xEntityX( camera,True )-xEntityX( sky )
dysky#=xEntityY(camera,True )-xEntityY( sky )
dzsky#=xEntityZ( camera,True )-xEntityZ( sky )
xTranslateEntity sky,dxsky#,dysky#,dzsky#
;End SkyBox Event

;Start Mouse Event
mxspd#=xMouseXSpeed()*0.25 
myspd#=xMouseYSpeed()*0.25 
xMoveMouse xGraphicsWidth()/2,xGraphicsHeight()/2   
campitch#=xEntityPitch(player)+myspd# 
If campitch#<-85 Then campitch#=-85 
If campitch#>85 Then campitch#=85 
xRotateEntity camera,campitch#,xEntityYaw(player)-mxspd#,xEntityRoll(camera)
xTranslateEntity player,0,-1,0
;End Mouse Event

;Start Key Event
If xKeyDown(17) Then xMoveEntity player ,0,0,100
If xKeyDown(31) Then xMoveEntity player ,0,0,-1
If xKeyDown(32) Then xMoveEntity player ,1,0,0
If xKeyDown(30) Then xMoveEntity player ,-1,0,0
;End Key Event

xUpdateWorld
xRenderWorld
xFlip
Wend
;End Main Loop
End

Ну посматри похимич) я уже целый день парюсь

Maxim1441 14.07.2010 21:59

Ответ: Обзор мыши как в Gothic I-II
 
Блин, у тебя ксорс, ну ладно, переделаю. Только у ты кин код с ресурсами (там у тебя меш и террайн), мне лом свои подставлять, да и надежнее будет...

zinador 14.07.2010 22:06

Ответ: Обзор мыши как в Gothic I-II
 
Залил суда т.к незнаю как суда файлы кидать
http://www.sharemania.ru/0273133

Maxim1441 14.07.2010 22:23

Ответ: Обзор мыши как в Gothic I-II
 
Короче, убираешь строку:
RotateEntity camera,campitch#,EntityYaw(player)-mxspd#,EntityRoll(camera)

И пихаешь две эти:
TurnEntity player,0,-mxspd#,0
TurnEntity camera,myspd#,0,0

Ну и переделай маленько ограничения по оси Y...

З.Ы. Ксорса у меня нет, поэтому искы везде я убрал.

ABTOMAT 14.07.2010 22:38

Ответ: Обзор мыши как в Gothic I-II
 
Хитрый план:
Делается Pivot.
Ставится в центр перса.
Приаттачивается к персу.
Делается камера. Располагается за спиною перса, поворачивается на него.
К Пивоту аттачится камера.
Потом мышкой крутится пивот => крутится и камера (как в готике)
В зависимости от угла поворота пивота крутится и перс. Можно мгновенно, можно с задержкой — по вкусу.

zinador 14.07.2010 22:51

Ответ: Обзор мыши как в Gothic I-II
 
Агромнейшее спасибо

zinador 14.07.2010 23:13

Ответ: Обзор мыши как в Gothic I-II
 
Цитата:

Сообщение от ABTOMAT (Сообщение 154724)
Хитрый план:
Делается Pivot.
Ставится в центр перса.
Приаттачивается к персу.
Делается камера. Располагается за спиною перса, поворачивается на него.
К Пивоту аттачится камера.
Потом мышкой крутится пивот => крутится и камера (как в готике)
В зависимости от угла поворота пивота крутится и перс. Можно мгновенно, можно с задержкой — по вкусу.

А можно пример кода если не трудно ? я так понял это будет так?
Код:

player=CreateSphere()
pivot=CreatePivot(player)
camera=CreateCamera(pivot)
дальше не совсем понял


IGR 15.07.2010 01:11

Ответ: Обзор мыши как в Gothic I-II
 
тогда перечитай тот пост еще раз !! ;)

АВТОМАТ, так пивот к персу или перса к пивоту атачить ??
Цитата:

В зависимости от угла поворота пивота крутится и перс.

Dream 15.07.2010 01:39

Ответ: Обзор мыши как в Gothic I-II
 
как помне то лучше вобще не атачить пивот к персу и наоборот.

ABTOMAT 15.07.2010 03:35

Ответ: Обзор мыши как в Gothic I-II
 
Цитата:

В зависимости от угла поворота пивота крутится и перс.
Вручную надо крутить.
Если приаттачить камеру прямо к персу и крутить его, то, соответственно, ничего дополнительно крутить не надо. Но Тогда теряются углы обзора по вертикали и нельзя сделать немгновенный поворот персонажа. Не рекомендую так делать.
Пример кода в сей поздний час дать не могу.


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

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