|
3D-программирование Вопросы, касающиеся программирования 3D мира |
30.08.2007, 16:01
|
#31
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Re: Новичёк не понимает... Помогите.
Вот допустим у тебя есть переменная speed#, от которой зависит скорость перемещения твоей машинки. Просто создай/загрузи картинку, которая будет у тебя индикатором скорости, тобишь стрелка, и поворачивай эту картинку за счет переменной speed#. А если стрелка будет не достаточно поворачиваться или наоборот, слишком быстро, то просто при повороте картинки умножай перменную speed# на нужное тебе значение(koef#). Значение будет вальироваться от 0 до 1 при уменьшении скорости вращения ,и от 1 до бесконечности(условно) при увеличении скорости вращения.
graphics3d ...
...
img_strelka=loadimage("strelka.png",4)
...
;главный цикл
repeat
...
renderworld()
if speed#>0
speed_rot#=speed#*0.1
rotateimage img_strelka, speed_rot#
endif
drawimage img_strelka, x, y, [frame]
flip
until keyhit(1)
end
|
(Offline)
|
|
30.08.2007, 16:09
|
#32
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Re: Новичёк не понимает... Помогите.
rotateimage это глюковато !!
лучше уже создать простой tynbnb ? привязать к камере в оприделенной позиции и его поварачевать:
strelka = createcube(camera)
scaleentity strelka,scl#,scl#*5,scl#; подбираем значения
positionentity strelka x,y,z; подбираем значения
потом в цыкле
if speed#>0
speed_rot#=speed#*0.1
rotateentity strelka, speed_rot#
endif
|
(Offline)
|
|
30.08.2007, 16:12
|
#33
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Re: Новичёк не понимает... Помогите.
Тогда уж можно и биллбоардом сделать.
ЗЫЖ ашибочка: Не rotateentity strelka, speed_rot#, а :rotateentity strelka, 0,0,speed_rot#
И еще надо использовать EntityOrder, так как другие объекты могут загородить стрелку, поэтому надо рендерить ее последней. Типо так EntityOrder strelka, 1000.
|
(Offline)
|
|
30.08.2007, 16:20
|
#34
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
Re: Новичёк не понимает... Помогите.
ну... я сделал так, как понял... надо было объяснить, для чего куча всякого текста ^_^ .. я сделал то, что понял...
|
(Offline)
|
|
30.08.2007, 16:54
|
#35
|
Оператор ЭВМ
Регистрация: 23.08.2007
Сообщений: 27
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Новичёк не понимает... Помогите.
А почему когда я запускаю программу у меня пишет "Texture does not exist" и выделяет первые строчки по прикреплению текстуры к обьекту или размеру текстуры?
|
(Offline)
|
|
30.08.2007, 16:59
|
#36
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Re: Новичёк не понимает... Помогите.
положи текстуры в ту же папку где модель и всё будет работать !!
|
(Offline)
|
|
30.08.2007, 17:01
|
#37
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Re: Новичёк не понимает... Помогите.
Потому что тут приведены лишь куски кода, а то как из них собрать работающее приложение твоя задача. Тут главное понять что тебе не без усилий пытались объяснить, так что уж не обидь =)))
|
(Offline)
|
|
30.08.2007, 17:08
|
#38
|
Оператор ЭВМ
Регистрация: 23.08.2007
Сообщений: 27
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Новичёк не понимает... Помогите.
Сообщение от IGR
положи текстуры в ту же папку где модель и всё будет работать !!
|
Всё лежит в одной папке,
просто это не работает переделаный код который дал мне Данил.
|
(Offline)
|
|
30.08.2007, 17:24
|
#39
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Re: Новичёк не понимает... Помогите.
просто это не работает переделаный код который дал мне Данил
|
О, скоро сам всё делать будеш, и без помощи других !!
|
(Offline)
|
|
30.08.2007, 17:30
|
#40
|
Бывалый
Регистрация: 12.10.2006
Сообщений: 737
Написано 131 полезных сообщений (для 452 пользователей)
|
Re: Новичёк не понимает... Помогите.
сначала хотел исправить твой код, но потом посмотрел, сколько там типичных "новичковских" ошибок и решил написать свой. вот, тут все работает и прокомментировано, разбирайся:
Graphics3D 1024,768,32,1
;загружаем шрифт:
font=LoadFont(courier ,16)
SetFont font
;скорости объектов:
Global speed1#
Global speed2#
;типы для столкновений:
Const Tpln=1, Tc1=2, Tc2=3
;создаем модели для столкновений:
c1=CreateCube()
EntityType c1,Tc1
PositionEntity c1,3,3,3
c2=CreateCube()
PositionEntity c2,-3,3,3
EntityType c2,Tc2
;скалируем их в соответствии с 3Dмоделями:
ScaleEntity c1,1,1,2; тут ты поставиш свои значения
ScaleEntity c2,1,1,2; тут тоже
;делаем их невидимыми: (пока убрал, чтобы было за чем наблюдать)
;EntityAlpha c1,0
;EntityAlpha c2,0
;загружаем меши: (потом сам допишешь)
;m1=LoadMesh("")
;ScaleMesh m1,,,
;m2=LoadMesh("")
;ScaleMesh m2,,,
;создаем камеры:
cam1=CreateCamera()
PositionEntity cam1,3,5,-10
CameraClsColor cam1,100,100,200
CameraViewport cam1,0,0,GraphicsWidth(),GraphicsHeight()*0.5
cam1targ=CreatePivot(c1)
PositionEntity cam1targ,0,5,-10
cam2=CreateCamera()
PositionEntity cam2,-3,5,-10
CameraClsColor cam2,100,100,200
CameraViewport cam2,0,GraphicsHeight()*0.5,GraphicsWidth(),GraphicsHeight()*0.5
cam2targ=CreatePivot(c2)
PositionEntity cam2targ,0,5,-10
;создаем план:
pln=CreatePlane()
EntityType pln,Tpln
;создаем текстуру для плана (у тебя этого куска кода не будет, т. к. ты ее грузишь из файла)
plntex=CreateTexture(256,256)
SetBuffer TextureBuffer(plntex)
Color 150,150,50
Rect 0,0,256,256
Color 50,150,50
Rect 32,32,192,192
;текстурим план:
ScaleTexture plntex,3,3
EntityTexture pln,plntex
;присваиваем нужный буффер и цвет:
SetBuffer BackBuffer()
Color 200,50,50
;прописываем коллизии:
Collisions Tc1,Tc2,2,3
Collisions Tc2,Tc1,2,3
Collisions Tc1,Tpln,2,3
Collisions Tc2,Tpln,2,3
;пошел главный цикл:
Repeat
;двигаем первый объект
If KeyDown(17) Then
If speed1#<= 0.5 Then
speed1#=speed1#+0.01
EndIf
EndIf
If KeyDown(31) Then
If speed1#>= -0.2 Then
speed1#=speed1#-0.01
EndIf
EndIf
speed1#=speed1#*0.99
If KeyDown(30) Then TurnEntity c1,0,1,0
If KeyDown(32) Then TurnEntity c1,0,-1,0
MoveEntity c1,0,0,speed1#
TranslateEntity c1,0,-1,0
;двигаем второй объект
If KeyDown(200) Then
If speed2#<= 0.5 Then
speed2#=speed2#+0.01
EndIf
EndIf
If KeyDown(208) Then
If speed2#>= -0.2 Then
speed2#=speed2#-0.01
EndIf
EndIf
speed2#=speed2#*0.99
If KeyDown(203) Then TurnEntity c2,0,1,0
If KeyDown(205) Then TurnEntity c2,0,-1,0
MoveEntity c2,0,0,speed2#
TranslateEntity c2,0,-1,0
;двигаем 3Dмодели (пока отключил т. к. их нет)
;PositionEntity m1,EntityX(c1,1),EntityY(c1,1),EntityZ(c1,1)
;RotateEntity m1,EntityPitch(c1,1),EntityYaw(c1,1),EntityRoll(c1,1)
;PositionEntity m2,EntityX(c2,1),EntityY(c2,1),EntityZ(c2,1)
;RotateEntity m2,EntityPitch(c2,1),EntityYaw(c2,1),EntityRoll(c2,1)
;двигаем камеры:
dx1#=EntityX( cam1targ,True )-EntityX( cam1 )
dy1#=EntityY( cam1targ,True )-EntityY( cam1 )
dz1#=EntityZ( cam1targ,True )-EntityZ( cam1 )
TranslateEntity cam1,dx1*.1,dy1*.1,dz1*.1
PointEntity cam1,c1
dx2#=EntityX( cam2targ,True )-EntityX( cam2 )
dy2#=EntityY( cam2targ,True )-EntityY( cam2 )
dz2#=EntityZ( cam2targ,True )-EntityZ( cam2 )
TranslateEntity cam2,dx2*.1,dy2*.1,dz2*.1
PointEntity cam2,c2
;обновляем сцену:
UpdateWorld()
RenderWorld()
;пишем скорость:
Text GraphicsWidth()-100,30,"speed: "+Int(speed1#*20)+"km/ч"
Text GraphicsWidth()-100,GraphicsHeight()*0.5+30,"speed: "+Int(speed2#*20)+"km/ч"
Flip
Until KeyHit(1)
End
|
(Offline)
|
|
30.08.2007, 17:36
|
#41
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Re: Новичёк не понимает... Помогите.
Text GraphicsWidth()-100,30,"speed: "+Int(speed1#*20)+"km/ч"
Text GraphicsWidth()-100,GraphicsHeight()*0.5+30,"speed: "+Int(speed2#*20)+"km/ч"
|
зачем Int ??
может надо Str ??
или вообще ненадо !!
|
(Offline)
|
|
30.08.2007, 17:37
|
#42
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
Re: Новичёк не понимает... Помогите.
Действительно... Cheetos, если мы будем ебе просто исправлять код, то ты так никогда не научишься... тебе надо понять код, а ты, как я вижу, не очень понимаешь, что делаешь .... Задавай вопросы, мы ответим, но ты должен не просто вписать код, ты должен его понять его...
Я нехочу тея обидеть...
|
(Offline)
|
|
30.08.2007, 17:40
|
#43
|
Оператор ЭВМ
Регистрация: 23.08.2007
Сообщений: 27
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Новичёк не понимает... Помогите.
Сообщение от Данил
Действительно... Cheetos, если мы будем ебе просто исправлять код, то ты так никогда не научишься... тебе надо понять код, а ты, как я вижу, не очень понимаешь, что делаешь .... Задавай вопросы, мы ответим, но ты должен не просто вписать код, ты должен его понять его...
Я нехочу тея обидеть...
|
Я понял, но когда мне расписывают код то я начинаю понимать что к чему относится.
СПАСИБО ВСЕМ КТО МНЕ ПОМОГАЕТ.
|
(Offline)
|
|
30.08.2007, 17:44
|
#44
|
Оператор ЭВМ
Регистрация: 23.08.2007
Сообщений: 27
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Новичёк не понимает... Помогите.
Сообщение от avel
сначала хотел исправить твой код, но потом посмотрел, сколько там типичных "новичковских" ошибок и решил написать свой. вот, тут все работает и прокомментировано, разбирайся:
|
Большое спасибо!!!
Я теперь более мение разобрался и начинаю толко доробатывать, ну там вставлють модели, и т.д.
А вот у тебя стоит ограничение по скорости, а в какой команде ты меняеш ограничение? Если не трудно ответить.
|
(Offline)
|
|
30.08.2007, 18:19
|
#45
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Новичёк не понимает... Помогите.
Сообщение от Cheetos
А вот у тебя стоит ограничение по скорости, а в какой команде ты меняеш ограничение? Если не трудно ответить.
|
Прочитай внимательно код, и будет понятно, прежде чем задать вопрос постарайся сам найти ответ, так наберёшся опыта, и уже не возникнут такие вот вопросики.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:02.
|