Помогите нубу!
Люди! Я занялся изучением Blitz'а совсем недавно, и заранее прошу меня извинить за, вероятно, глупый вопрос. Но я себе уже всю голову сломал, и не могу понять причины странного поведения переменных PozCyrX и PozCyrY.
Мне просто хочется понять причину, по которой переменные отказываются принимать значение меньшее объявленному в начале. И вообще странно себя ведут.... Помогите, а то сойду с ума.... Graphics3D 1920,1080,32,1 SetBuffer BackBuffer () Laits1=CreateLight() kyrsor=LoadMesh("D:\Prog\Kyrsor4.b3d") TextureGround=LoadTexture ("D:\Prog\Texture1.jpg") PointRotate=CreatePivot() MainCam=CreateCamera(PointRotate) PozCyrX=0 PozCyrY=200 Color 0,200,0 VertCam#=160 SizeCyr#=1 RadCamX#=0 RadCamY#=0 PositionEntity Laits1,0,60,-70 PositionEntity MainCam,0,VertCam#,-160 RotateEntity MainCam,45,RadCamX#,0 MoveMarker=CreatePivot(Kyrsor) ScaleTexture TextureGround,32,32 terrain=CreateTerrain( 32 ) ScaleEntity terrain,10,1,10 EntityTexture terrain,TextureGround Repeat PositionEntity PointRotate,PozCyrX,1,PozCyrY PositionEntity MoveMarker,0,0,0 PositionEntity kyrsor,PozCyrX,1,PozCyrY aX=MouseXSpeed() aY=MouseYSpeed() VertCam#=VertCam#+(MouseZSpeed()*3) If MouseDown(2)=1 Then RadCamX#=RadCamX#-aX RadCamY#=RadCamY#+aY RotateEntity PointRotate ,RadCamY#,RadCamX#,0 RotateEntity Kyrsor ,0,RadCamX#,0 Goto lab1 MoveEntity MoveMarker,aX,0,aY-(aY*2) PozCyrX=EntityX (MoveMarker,1) PozCyrY=EntityZ (MoveMarker,1) .lab1 ScaleEntity kyrsor,SizeCyr,SizeCyr,SizeCyr SizeCyr#=SizeCyr#-0.01 If SizeCyr#<0.4 Then SizeCyr#=1 PositionEntity MainCam,0,VertCam#,-160 RenderWorld UpdateWorld Flip Until KeyHit(1) End |
Ответ: Помогите нубу!
Цитата:
Хз, код не особо читабельный. |
Ответ: Помогите нубу!
Попробуй добавить в основной цикл
Код:
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 И ещё попробуй PozCyrX и PozCyrY объявить как дробные, то есть Код:
PozCyrX#=0 Посмотрел код, запустил, беда не в этом явно. |
Ответ: Помогите нубу!
Зашёл в топик, хотел помочь.
Код не оформлен как код — его трудно читать. В коде используется goto — ещё труднее его читать. Чтобы выяснить в чём дело, надо запустить программу и посмотреть, что там творится. В коде используется подгрузка каких-то файлов: моделей и текстур, очевидно, без них не заработает. Можно было бы все причендалы сложить в zip-архив и приложить к посту, чтобы желающие могли тут же запустить. Но нет, им придётся найти у себя что-то подобное, надо искать, надо складывать в папку. Расхотел помочь. Думаю, не я один по причинам выше. |
Ответ: Помогите нубу!
Цитата:
Код надо переделывать. Ты хочешь сделать движение камеры (объяснения для остальных), вид сверху (изометрия), с возможностью вращать камеру по трём осям, вокруг "курсора", который ползает внизу по плоскости. Учитывая что это не работает после установки курсора в центр экрана, у тебя присутствует привязка (или типа того) к координатам курсора. Но это неправильно. Нужно получать куда двигается мышь (курсор) и в ту сторону двигать камеру. Пригодятся команды: Код:
ProjectedX() P. S. Код не читал. |
Ответ: Помогите нубу!
Цитата:
Цитата:
Цитата:
Цитата:
Всем огромное спасибо за помощ! Проблема решена, и мой мозг теперь в безопасности). |
Ответ: Помогите нубу!
Цитата:
Цитата:
Вместо прыжка, логичнее будет ставить условие перехода. И ещё, называй пожалуйста темы правильно, что бы название отражало суть. |
Часовой пояс GMT +4, время: 05:25. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot