Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 30.08.2007, 16:01   #31
H@NON
Дэвелопер
 
Регистрация: 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
IGR
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
H@NON
Дэвелопер
 
Регистрация: 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
Cheetos
Оператор ЭВМ
 
Регистрация: 23.08.2007
Сообщений: 27
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Новичёк не понимает... Помогите.

А почему когда я запускаю программу у меня пишет "Texture does not exist" и выделяет первые строчки по прикреплению текстуры к обьекту или размеру текстуры?
(Offline)
 
Ответить с цитированием
Старый 30.08.2007, 16:59   #36
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: Новичёк не понимает... Помогите.

положи текстуры в ту же папку где модель и всё будет работать !!
(Offline)
 
Ответить с цитированием
Старый 30.08.2007, 17:01   #37
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Re: Новичёк не понимает... Помогите.

Потому что тут приведены лишь куски кода, а то как из них собрать работающее приложение твоя задача. Тут главное понять что тебе не без усилий пытались объяснить, так что уж не обидь =)))
(Offline)
 
Ответить с цитированием
Старый 30.08.2007, 17:08   #38
Cheetos
Оператор ЭВМ
 
Регистрация: 23.08.2007
Сообщений: 27
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Новичёк не понимает... Помогите.

Сообщение от IGR
положи текстуры в ту же папку где модель и всё будет работать !!
Всё лежит в одной папке,
просто это не работает переделаный код который дал мне Данил.
(Offline)
 
Ответить с цитированием
Старый 30.08.2007, 17:24   #39
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: Новичёк не понимает... Помогите.

просто это не работает переделаный код который дал мне Данил
О, скоро сам всё делать будеш, и без помощи других !!
(Offline)
 
Ответить с цитированием
Старый 30.08.2007, 17:30   #40
avel
Бывалый
 
Аватар для avel
 
Регистрация: 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
IGR
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
Cheetos
Оператор ЭВМ
 
Регистрация: 23.08.2007
Сообщений: 27
Написано 0 полезных сообщений
(для 0 пользователей)
Смущение Re: Новичёк не понимает... Помогите.

Сообщение от Данил
Действительно... Cheetos, если мы будем ебе просто исправлять код, то ты так никогда не научишься... тебе надо понять код, а ты, как я вижу, не очень понимаешь, что делаешь .... Задавай вопросы, мы ответим, но ты должен не просто вписать код, ты должен его понять его...

Я нехочу тея обидеть...
Я понял, но когда мне расписывают код то я начинаю понимать что к чему относится.
СПАСИБО ВСЕМ КТО МНЕ ПОМОГАЕТ.
(Offline)
 
Ответить с цитированием
Старый 30.08.2007, 17:44   #44
Cheetos
Оператор ЭВМ
 
Регистрация: 23.08.2007
Сообщений: 27
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Новичёк не понимает... Помогите.

Сообщение от avel
сначала хотел исправить твой код, но потом посмотрел, сколько там типичных "новичковских" ошибок и решил написать свой. вот, тут все работает и прокомментировано, разбирайся:
Graphics3D ...
Большое спасибо!!!
Я теперь более мение разобрался и начинаю толко доробатывать, ну там вставлють модели, и т.д.
А вот у тебя стоит ограничение по скорости, а в какой команде ты меняеш ограничение? Если не трудно ответить.
(Offline)
 
Ответить с цитированием
Старый 30.08.2007, 18:19   #45
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Новичёк не понимает... Помогите.

Сообщение от Cheetos
А вот у тебя стоит ограничение по скорости, а в какой команде ты меняеш ограничение? Если не трудно ответить.
Прочитай внимательно код, и будет понятно, прежде чем задать вопрос постарайся сам найти ответ, так наберёшся опыта, и уже не возникнут такие вот вопросики.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите новичку срен27 JAVA Micro Edition 7 18.11.2013 19:49
Помогите новичку! Cuatro FAQ 1 07.05.2009 03:02
помогите новичку с b3d falcon Blitz3D 60 09.09.2008 16:33
Помогите новичку ejjj Основной форум 8 23.01.2007 17:09
Помогите новичку _maxim_ 3D-программирование 7 17.09.2006 15:48


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com