![]() |
ограничение мышки по вертикали
Вот зделал управление мышкой, всё работает.
Только вот немогу ограничить камеру, тоесть когда ведеш мышку вперёд камера крутилась по оси х но не полный круг,а частично, попытался зделать кое-какое ограничени но оно плохо работает: Graphics3D 640,480 SetBuffer BackBuffer() player = CreateSphere(8) camera = CreateCamera(player) PositionEntity camera,0,1.5,0 pol = CreateTerrain(32) PositionEntity pol,0,-1,0 For x=1 To 10 cub = CreateCube() PositionEntity cub,Rand(0,32),0,Rand(0,32) EntityColor cub,Rand(0,255),Rand(0,255),Rand(0,255) Next MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 While Not KeyDown(1) x = MouseXSpeed() y = MouseYSpeed() xg = GraphicsWidth()/2 yg = GraphicsHeight()/2 If x<0 Then MoveMouse xg,yg If x>0 Then MoveMouse xg,yg If y<0 Then MoveMouse xg,yg If y>0 Then MoveMouse xg,yg limit = EntityPitch(camera,True) TurnEntity player,0,-x,0 If limit > -25 And limit < 70 Then TurnEntity camera,y,0,0; вот я пытался зделать ограничение If KeyDown(200) Then MoveEntity player,0,0,0.1 If KeyDown(208) Then MoveEntity player,0,0,-0.1 If KeyDown(203) Then MoveEntity player,-0.1,0,0 If KeyDown(205) Then MoveEntity player,0.1,0,0 UpdateWorld RenderWorld Text 10,10,limit Flip Wend End |
Ответ: ограничение мышки по вертикали
Заведи переменную CamPitch, затем меняй её в зависимости от скорости движения мышки по Y.
Далее проверяй, если например тебе нужно ограничить по 70 градусов вниз и вверх то можно так: If Abs(CamPitch)>70 CamPitch=70*Sgn(CamPitch) После этого крутишь камеру: RotateEntity camera,CamPitch,EntityYaw(camera,1),0,1 |
Ответ: ограничение мышки по вертикали
Как только камера заходит за границы по условию она уже не может повернуться. Надо как-нибудь вроде:
Код:
If y>0 Then |
Ответ: ограничение мышки по вертикали
FireOwl, так это не делается. Тут вылезут баги, например при редком цикле (низкий фпс, если упс не фиксированный), при сильной скорости мышки, по вертикали, камера может проскачить от 70, до 90, и дальше, уже Yaw обернётся, на 180 градусов. А Pitch пойдёт от остатка на убывание.
Короче говоря, если вам не нужны баги, выносите градус по вертикали в отдельную переменную, и работайте с ней. Тем более хоть и о производительности в таких вещах задумываться - через-чур мелочёвка, но работать с переменной быстрее, чем выбирать, и получать Pitch от энтити. |
Ответ: ограничение мышки по вертикали
Цитата:
|
Ответ: ограничение мышки по вертикали
вот я переделал...
Код:
Graphics3D 640,480 |
Ответ: ограничение мышки по вертикали
все оказалось куда проще чем я думал
|
Ответ: ограничение мышки по вертикали
ЗЫ Приятель, а шо у тебя с глазом?
|
Ответ: ограничение мышки по вертикали
в фотошопе зделал :-D
|
Ответ: ограничение мышки по вертикали
Morganolla, снова лишние операции.
Код:
Global wW=640,wH=640 ЗЫ, ограничивать вниз на 25 градусов, весьма бесюче, и заметь, что везде от этого отказываются. |
Ответ: ограничение мышки по вертикали
Цитата:
И если уж на то пошло, то на сколько нужно ограничивать, если вопще нужно? ИМХО не может же игрок крутить шею на все 360 по оси Х :) |
Ответ: ограничение мышки по вертикали
KingMaks, ну по горизонтали, в играх редко встречалось, когда в гемплее был элемент управления головой (лишь несколько военных симуляторов видел). Но там опять же, было даже не совсем головой крутили, а прицел оружия, ходил по экрану в небольшом радиусе вокруг центра экрана, далее заходя, уже крутилось тело.
В FPS играх, крутят сразу тело, а не голову :) По вертикали - голова, по горизонтали - тело. Ты можешь вообще смотреть очень низко, опустить голову почти на 90 градусов, не так ли? При этом есть ещё зрачки, они тоже могут двигаться независимо от шеи, и самого тела, опять же, обзор по горизонтали будет почти 180 градусов! Короче говоря, не ограничивают вниз, потому что во многих ситуациях, где нужно стрелять во время того же прыжка, или смотреть с крыши вниз, и представь, тебя тупо ограничат - выбесит :lol: |
Ответ: ограничение мышки по вертикали
По оси Y не нужно ограничивать это понятно.
Ну а по оси Х полный круг грех делать, хоть какоето ограничение нужно, я в какие игры не играл там ,вроде, по 90 градусов вверх и низ. (как в контре когда на край дома стаёш, разворачиваешься на 180 и смотриш вниз, ног не видно,вопщем получаеться что ты париш в воздухе):-D |
Ответ: ограничение мышки по вертикали
KingMaks, 90 многовато, 89 делай, а то там будет камера беситься..
А вот насчёт тела, сейчас много где делают очень прикольно, мне понравилось как в Dark Messiah, там своё тело видно. И сам бой там кстати приятный :). |
Ответ: ограничение мышки по вертикали
MoKa
Цитата:
|
Часовой пояс GMT +4, время: 06:01. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot