|
3D-программирование Вопросы, касающиеся программирования 3D мира |
15.06.2007, 09:07
|
#16
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Re: Помогите приделать физику к автомобилю
Не факт... Это просто статистика
|
(Offline)
|
|
15.06.2007, 10:12
|
#17
|
Оператор ЭВМ
Регистрация: 11.06.2007
Сообщений: 20
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Помогите приделать физику к автомобилю
Нет это просто твсе зажрались =(
|
(Offline)
|
|
15.06.2007, 10:47
|
#18
|
|
Re: Помогите приделать физику к автомобилю
neoleg
мне влом тебе описывать весь код, и влом качать 18 метров
из исходника вот самое главное
Function carupdate()
For c.car=Each car
c\vy#=c\vy#+gravity# ;тут изменяем ускорение
c\vx#=c\vx#+c\ax#
c\vy#=c\vy#+c\ay#
c\vz#=c\vz#+c\az#
c\x#=EntityX(c\e) ; считываем позицию
c\y#=EntityY(c\e)
c\z#=EntityZ(c\e)
TranslateEntity c\e,c\vx,c\vy,c\vz ;смещаем машину
Next
UpdateWorld()
For c.car=Each car
;correct velocity if collided
c\vx=(EntityX(c\e)-c\x) ;щитаем новое ускорение
c\vy=(EntityY(c\e)-c\y)
c\vz=(EntityZ(c\e)-c\z)
;slow down due to friction
If EntityCollided(c\e,world_col) ;если втаранились, изменяем ускорение
c\vx#=c\vx*0.98
c\vy#=c\vy*0.98
c\vz#=c\vz*0.98
EndIf
c\ax#=0 ;збрасываем силу изменяющюю ускорение (вроде так)
c\ay#=0
c\az#=0
Next
End Function
больше чем я врятли кто-то обьяснит
а я обьяснил только потому что мне надоел етот флуд
если так дальше будете флудить - топик снесу нафиг
|
|
|
15.06.2007, 15:08
|
#19
|
Оператор ЭВМ
Регистрация: 11.06.2007
Сообщений: 20
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Помогите приделать физику к автомобилю
Спасибо Я попытался это вставить но он мне написал что тип машины не найден хотя всё есть. вот полный код:
AppTitle "CrimeLife"
Function LoadSkyBox( file$ )
m=CreateMesh()
;front face
b=LoadBrush( "texture\sky\sky_FR.jpg",49 )
s=CreateSurface( m,b )
AddVertex s,-1,+1,-1,0,0:AddVertex s,+1,+1,-1,1,0
AddVertex s,+1,-1,-1,1,1:AddVertex s,-1,-1,-1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3:
FreeBrush b
;right face
b=LoadBrush( "texture\sky\sky_LF.jpg",49 )
s=CreateSurface( m,b )
AddVertex s,+1,+1,-1,0,0:AddVertex s,+1,+1,+1,1,0
AddVertex s,+1,-1,+1,1,1:AddVertex s,+1,-1,-1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;back face
b=LoadBrush( "texture\sky\sky_BK.jpg",49 )
s=CreateSurface( m,b )
AddVertex s,+1,+1,+1,0,0:AddVertex s,-1,+1,+1,1,0
AddVertex s,-1,-1,+1,1,1:AddVertex s,+1,-1,+1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;left face
b=LoadBrush( "texture\sky\sky_RT.jpg",49 )
s=CreateSurface( m,b )
AddVertex s,-1,+1,+1,0,0:AddVertex s,-1,+1,-1,1,0
AddVertex s,-1,-1,-1,1,1:AddVertex s,-1,-1,+1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;top face
b=LoadBrush( "texture\sky\sky_UP.jpg",49 )
s=CreateSurface( m,b )
AddVertex s,-1,+1,+1,0,1:AddVertex s,+1,+1,+1,0,0
AddVertex s,+1,+1,-1,1,0:AddVertex s,-1,+1,-1,1,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;bottom face
b=LoadBrush( "texture\sky\sky_DN.jpg",49 )
If b=0 b=CreateBrush (0,30,50)
s=CreateSurface( m,b )
AddVertex s,-1,-1,-1,1,0:AddVertex s,+1,-1,-1,1,1
AddVertex s,+1,-1,+1,0,1:AddVertex s,-1,-1,+1,0,0
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
ScaleMesh m,500,500,500
FlipMesh m
EntityFX m,1
Return m
End Function
Graphics3D 1024,768,32,1
SetBuffer BackBuffer()
lit=CreateLight()
LoadSkyBox ("data\gfx\skies\night")
cam=CreateCamera()
PositionEntity cam,0,4,0
; Ростительность
tr1=LoadMesh("model\object\exeterier\trava.3DS")
PositionEntity tr1,10,0,-9
tr2=LoadMesh("model\rast\trava2.3DS")
PositionEntity tr2,10,0,-11
gor=LoadMesh("model\gora.3DS")
PositionEntity gor,0,0.1,300
tex=LoadTexture("texture\trova.jpg")
ScaleTexture tex,5,5
EntityTexture gor,tex
; Создаём светофор
ligt=LoadMesh("model\object\exeterier\slight.3DS")
PositionEntity ligt,0,0,0
; Создаём фонари
slight=LoadMesh("model\object\exeterier\fonar2.3DS")
PositionEntity slight,-8,0,0
slight=LoadMesh("model\object\exeterier\fonar.3ds")
PositionEntity slight,4,0,-10
slight=LoadMesh("model\object\exeterier\fonar.3ds")
PositionEntity slight,4,0,-30
slight=LoadMesh("model\object\exeterier\fonar.3ds")
PositionEntity slight,4,0,-60
slight=LoadMesh("model\object\exeterier\fonar2.3DS")
PositionEntity slight,-8,0,-10
slight=LoadMesh("model\object\exeterier\fonar2.3DS")
PositionEntity slight,-8,0,-30
slight=LoadMesh("model\object\exeterier\fonar2.3DS")
PositionEntity slight,-8,0,-60
; Дома
house=LoadMesh("model\object\house1\house1.3DS")
PositionEntity house,-25,0,-30
tex=LoadTexture("texture\metal.jpg")
ScaleTexture tex,0.5,0.5
EntityTexture house,tex
office=LoadMesh("model\object\office1\office1.3DS")
PositionEntity office,16,0,-3
tex=LoadTexture("texture\metal.jpg")
ScaleTexture tex,0.5,0.5
EntityTexture office,tex
motel=LoadMesh("model\object\motel1\motel1.3DS")
PositionEntity motel,11,0.4,-25
tex=LoadTexture("texture\1.jpg")
EntityTexture motel,tex
house3=LoadMesh("model\object\house3\house3.3DS")
PositionEntity house3,25,0,14
house3=LoadMesh("model\object\house2\house2.3DS")
PositionEntity house3,25,0,14
; Мапинг
pl=LoadMesh("model\panel.3DS")
PositionEntity pl,-22,0,35
tex=LoadTexture("texture\trotuar.BMP")
ScaleTexture tex,1,1
EntityTexture pl,tex
pl=LoadMesh("model\panel.3DS")
PositionEntity pl,18,0,35
tex=LoadTexture("texture\trotuar.BMP")
ScaleTexture tex,1,1
EntityTexture pl,tex
pl=LoadMesh("model\panel.3DS")
PositionEntity pl,18,0,-8
tex=LoadTexture("texture\trotuar.BMP")
ScaleTexture tex,1,1
EntityTexture pl,tex
pl=LoadMesh("model\panel.3DS")
PositionEntity pl,18,0,-32
tex=LoadTexture("texture\trotuar.BMP")
ScaleTexture tex,1,1
EntityTexture pl,tex
pl=LoadMesh("model\panel.3DS")
PositionEntity pl,-22,0,-8
tex=LoadTexture("texture\trotuar.BMP")
ScaleTexture tex,1,1
EntityTexture pl,tex
kat=LoadMesh("model\object\exeterier\kat.3DS")
tex=LoadTexture("texture\trees.jpg")
PositionEntity kat,14,0.2,-9.5
ScaleTexture tex,-0.5,-0.5
EntityTexture kat,tex
box=LoadMesh("model\object\exeterier\recl_box.3DS")
tex=LoadTexture("texture\trees.jpg")
PositionEntity box,-22,0,-8
ScaleTexture tex,-0.5,-0.5
EntityTexture box,tex
; Player
car=LoadMesh("model\car\honda.3DS") ; Создаём авто
Function carupdate()
For c.car=Each car
c\vy#=c\vy#+gravity# ;тут изменяем ускорение
c\vx#=c\vx#+c\ax#
c\vy#=c\vy#+c\ay#
c\vz#=c\vz#+c\az#
c\x#=EntityX(c\e) ; считываем позицию
c\y#=EntityY(c\e)
c\z#=EntityZ(c\e)
TranslateEntity c\e,c\vx,c\vy,c\vz ;смещаем машину
Next
UpdateWorld()
For c.car=Each car
;correct velocity if collided
c\vx=(EntityX(c\e)-c\x) ;щитаем новое ускорение
c\vy=(EntityY(c\e)-c\y)
c\vz=(EntityZ(c\e)-c\z)
;slow down due to friction
If EntityCollided(c\e,world_col) ;если втаранились, изменяем ускорение
c\vx#=c\vx*0.98
c\vy#=c\vy*0.98
c\vz#=c\vz*0.98
EndIf
c\ax#=0 ;збрасываем силу изменяющюю ускорение (вроде так)
c\ay#=0
c\az#=0
Next
End Function
ScaleMesh car,1,1,1
RotateMesh car,-1,1,1
cam=CreateCamera(car) ; Создаём камеру
PositionEntity car,-5,0,3
pln=CreatePlane()
tex=LoadTexture("texture\Blkleath.jpg")
ScaleTexture tex,3,3
EntityTexture pln,tex
cam=CreateCamera(car)
MoveEntity cam,0,2,6
Repeat
; Управление
If KeyDown(200) MoveEntity car,0,0,-.2
If KeyDown(208) MoveEntity car,0,0,.2
If KeyDown(203) TurnEntity car,0,2,0
If KeyDown(205) TurnEntity car,0,-2,0
PointEntity cam,car
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End
|
(Offline)
|
|
15.06.2007, 15:19
|
#20
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: Помогите приделать физику к автомобилю
Хех, так ты создай.
|
(Offline)
|
|
15.06.2007, 15:33
|
#21
|
Оператор ЭВМ
Регистрация: 11.06.2007
Сообщений: 20
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Помогите приделать физику к автомобилю
car=LoadMesh("model\car\honda.3DS") ну если у меня уже есть?
|
(Offline)
|
|
15.06.2007, 15:36
|
#22
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: Помогите приделать физику к автомобилю
Это не тип, а просто переменная.
|
(Offline)
|
|
15.06.2007, 16:37
|
#23
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Re: Помогите приделать физику к автомобилю
RTFM!
http://johnk.3dn.ru/publ/2-1-0-19 - типы для самых маленьких
|
(Offline)
|
|
15.06.2007, 16:38
|
#24
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Re: Помогите приделать физику к автомобилю
Я вижу ты еще совсем зеленый neoleg. Тебе еще учиться и учиться. Не принимай это как оскорбление, скорее наблюдение. Дал бы ссылок кучу на разные учебники, но че то забыл, так что ищи учебник scavena - самое то читать его первым. А вообще зайди в раздел FAQ , там тоже есть много чего. В общем я посмотрел коддддддд.... такой кашы я еще не пробывал . Внизу аттач . Сам проверить не смогу ибо 18мегов за зря.... Больно не старался так что точно что-нибудь не так. Разбирайся сам и не копируй исходники а разбери их и пиши тоже сам.
|
(Offline)
|
|
15.06.2007, 19:30
|
#25
|
Оператор ЭВМ
Регистрация: 11.06.2007
Сообщений: 20
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Помогите приделать физику к автомобилю
Спасибо. Я и сам понимаю что надо так надо самому а вот не получается не выдерживаю да и встроить добром сам не могу зато когда встроено могу посомтреть как и что и тогда в бдущем уже сам делать
|
(Offline)
|
|
15.06.2007, 23:16
|
#26
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: Помогите приделать физику к автомобилю
А еще луише открой раздел 3Д програмирование и с самого конца начни четать посты!
Там много чего раскрыто что тебе прегодится!
|
(Offline)
|
|
16.06.2007, 08:50
|
#27
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Re: Помогите приделать физику к автомобилю
Сообщение от neoleg
Спасибо. Я и сам понимаю что надо так надо самому а вот не получается не выдерживаю да и встроить добром сам не могу зато когда встроено могу посомтреть как и что и тогда в бдущем уже сам делать
|
Неее, ты так не научишься. Ты лучше сам напиши с нуля. Чисто логически подставляй операторы. Сразу поймешь что к чему. И учись делать код понятным, минимум команд. Все вычисления сначало производи в переменных. А если хочешь сразу игру написать, то пиши простую. А потом постепенно увеличивай сложность.
Можешь конечно не принимать это в серьез, это был так, совет. Просто сам так начинал и нехватало терпения, хотелось все и сразу. Вот поймешь что к чему в Блитце,тоже также будешь других нравоучать.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:48.
|