|
3D-программирование Вопросы, касающиеся программирования 3D мира |
15.10.2005, 15:58
|
#1
|
|
Вот выуладываю код,поверхность это вода и модель суши,получился орхипелаг в возвышенностями.как по нему двигаться с видом от первого лица? опускаться и подниматься на возвышенностях,а в воде плавать)
плиз помогите. :'((
|
|
|
15.10.2005, 17:36
|
#2
|
|
зделай проверку на нахождение в воде\на суше
если в воде то отключай гравитацию
если на суше то гравитацию на нормальную ставь
|
|
|
15.10.2005, 21:06
|
#3
|
|
я не знаю как вообще делать гравитацию :'((
|
|
|
15.10.2005, 21:09
|
#4
|
|
тебе вообще че надо ? и что для етого есть ?
|
|
|
15.10.2005, 21:09
|
#5
|
Бывалый
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений (для 3 пользователей)
|
Если хочешь чтоб тебе хорошо помогли, желательно скинь весь код со всеми ресурсами!
|
(Offline)
|
|
16.10.2005, 00:18
|
#7
|
|
у меня есть код! и ресурсы,короче у меня холмистая местность,могу ходить тока по низинам(ровной поверхности) а холмы на сквозь прхожу.
;инициализация графики
Graphics3D 800,600,32
SetBuffer BackBuffer()
Global user
Global camera
Const G#=1
Const USERT=1;for user
Const TERRT=2;for terrain
Const SHOTT=3;for shot
Const BOTT=4;for bot
Global pricel=LoadImage("C:/media/pricel2.bmp")
Global shot_sprite=LoadSprite("C:/media/sprite.bmp")
Type shot
Field entity
Field dist#
End Type
Type bot
Field entity
End Type
;создание игрока
Function create_user(x#=0,y#=10,z#=0)
MidHandle pricel
MaskImage pricel,255,255,255
user=CreateSphere()
k#=3
ScaleEntity user,k#,k#,k#
EntityRadius user,k#
camera=CreateCamera(user)
CameraRange camera,0.1,100
PositionEntity user,x#,y#,z#
EntityType user,USERT
End Function
;обновление игрока
Function update_user()
V#=0.5
u#=70;предельный угол
TurnEntity camera,MouseYSpeed(),0,0
TurnEntity user,0,-MouseXSpeed(),0
If KeyDown(203)=1 Then MoveEntity user,-V#,0,0
If KeyDown(205)=1 Then MoveEntity user,V#,0,0
If KeyDown(200)=1 Then MoveEntity user,0,0,+V#
If KeyDown(208)=1 Then MoveEntity user,0,0,-V#
MoveMouse GraphicsWidth()*0.5,GraphicsHeight()*0.5
If Abs(EntityPitch#(camera))>u# RotateEntity camera,u#*Sgn(EntityPitch#(camera)),0,0
If MouseHit(1) create_shot(EntityX(user),EntityY(user),EntityZ(user),EntityPitch(camera),EntityYaw(user),0)
;физика
TranslateEntity user,0,-G#,0
End Function
Function create_Shot(x#,y#,z#,pitch#,yaw#,roll#)
s.shot=New shot
s\entity=CopyEntity(shot_sprite)
EntityType s\entity,SHOTT
PositionEntity s\entity,x#,y#,z#,1
RotateEntity s\entity,pitch#,yaw#,roll#,1
Return True
End Function
Function update_shot()
vs#=1
max_dist#=1000
For a.shot=Each shot
MoveEntity a\entity,0,0,vs#
a\dist#=a\dist#+vs#
bot_h=EntityCollided(a\entity,BOTT)
If a\dist#>max_dist#
FreeEntity a\entity
Delete a
ElseIf EntityCollided(a\entity,TERRT) <> 0
FreeEntity a\entity
Delete a
ElseIf bot_h <> 0
FreeEntity a\entity
Delete a
For q.bot=Each bot
If q\entity=bot_h
FreeEntity bot_h
Delete q
create_bot(EntityX(user)+Rnd(-100,100),2,EntityZ(user)+Rnd(-100,100))
Exit
EndIf
Next
EndIf
Next
End Function
Function create_bot(x#,y#,z#)
b.bot=New bot
b\entity=CreateSphere()
EntityType b\entity,BOTT
PositionEntity b\entity,x#,y#,z#
Return True
End Function
Function update_bot()
v#=0.3
For a.bot=Each bot
PointEntity a\entity,user
MoveEntity a\entity,0,0,v#
Next
End Function
;создание игрового мира
Function create_world()
light=CreateLight()
RotateEntity light,90,0,0
HideEntity shot_sprite
Pl= CreatePlane()
tx=LoadTexture("C:/media/water.jpg");
EntityTexture Pl,tx;
FreeTexture tx
EntityPickMode pl,2
NameEntity pl,"Water"
create_user()
terrain= CreatePlane()
Land=LoadTerrain("C:/media/land.png")
EntityPickMode Land,2
NameEntity Land,"Land"
EntityType terrain,TERRT
tx=LoadTexture("C:/media/moss.jpg")
ScaleTexture tx,10.5,3.2
EntityTexture terrain,tx
EntityTexture land,tx
FreeTexture tx
ScaleEntity terrain,5,1,5
ScaleEntity Land,5,80,5
MoveEntity Land,-256*5,-20,-256*5
MoveEntity terrain,0,-20.001,0
create_user()
c_bot=Input("input Amount")
For i=1 To c_bot
create_bot(Rnd(-100,100),2,Rnd(-100,100))
Next
Collisions USERT,TERRT,2,3
Collisions SHOTT,SH,2,1
Collisions BOTT,TERRT,2,3
Collisions BOTT,USERT,2,3
Collisions BOTT,BOTT,2,3
Collisions USERT,BOTT,2,3
Collisions SHOTT,BOTT,2,1
End Function
;функции закончились
;--------------------------------
create_world()
;MAIN LOOP
While Not KeyHit(1)=1
update_user()
update_shot()
update_bot()
UpdateWorld()
RenderWorld()
DrawImage pricel,MouseX(),MouseY()
Flip
Wend
;----------------------------
|
|
|
16.10.2005, 13:33
|
#8
|
|
все зависит от твоих холмов )
а вот что ты неумееш делать гравитацию - не ври !
;физика
TranslateEntity user,0,-G#,0
(наверно какойта *** пришол с RBC чтобы над нами поиздиватся)
|
|
|
16.10.2005, 14:06
|
#9
|
Бывалый
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений (для 3 пользователей)
|
АГА, скорей всего, ведь если бы ему так всё это надобыло, он мог бы зарегестрироваться и выложить всё что у него из ресурсов на его компе лежит, а не говорить ,что у него они есть.
Если же это не так, возможно он просто плохо знает Blitz, а коды взял с какого-нибудь сайта и попробовал их соеденить, ну результат мы все хорошо видим.
|
(Offline)
|
|
16.10.2005, 16:11
|
#10
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Да что вы на человека напали. Учится - получается. Вначале всегда так:
1)пишем прогу, копируя куски
2)понимаем зачем они нужны и варьируем участки кода
3)практичекси всё пишем своими словами
4)знаем как и что написать
5)знаем как решить задачу несколькими способами, выбираем оптимальный.
А код многие видели в FAQ Ничего плохого в этом нет
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
16.10.2005, 16:35
|
#11
|
|
так вы мне поможите? на холмы охота забираться и опускаться.да и чтоб были не кружки(боты) а модели,у меня они есть с анимацией(смерти ходьбы атаки) и чтоб не только один прицел был а пушка выглядывала,калаша есть)
плииииииз)
|
|
|
16.10.2005, 16:46
|
#12
|
Бывалый
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений (для 3 пользователей)
|
Guest Я не знаю, мож я чё-то ни то загружал (хотя это мало вероятно, у меня все ресы есть), я загрузил твой код, посмотрел и чё-то не пойму, почему у тебя холм с воздуха начинается??? Не понимаю, вроде всё загружал то же, что и написанно :-/
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:08.
|