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

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

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

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

Ответ
 
Опции темы
Старый 14.10.2007, 16:36   #1
SergSS13
AnyKey`щик
 
Регистрация: 12.10.2007
Сообщений: 1
Написано 0 полезных сообщений
(для 0 пользователей)
Ошибка в коде

Добрый день. Сталкнулся с такой проблемой : Есть два типа Bot и Bot2
в каждом по 5 кубов. Каждый из них должен в зависимости от расстояния выбрать себе противника и реследовать его. Код выдаёт ошибку, подскажите что не так.

Вот код:

Global Player
Global Bot_entity
Global Bot2_entity

Const TPlayer=1
Const TBot=2
Const TBot2=3

Type Bot
Field Bot_entity
Field target_
End Type

Type Bot2
Field Bot2_entity
Field target2_
End Type

Graphics3D 800,600,16
SetBuffer BackBuffer()

Create_Player()
Create_World()
Create_Bot(x,y,z)
Create_Bot2(x,y,z)
Update_World_001()


While Not KeyDown(1)

Update_Player()
Update_Bot(x,y,z)
Update_Bot2(x,y,z)
UpdateWorld
RenderWorld
Flip
Wend

Function Create_World()
cam=CreateCamera()
PositionEntity cam,0,100,-8
CameraClsColor cam,255,255,255
RotateEntity cam,90,0,0
light=CreateLight()
TurnEntity light,70,70,0
pla=CreatePlane()
;trava=LoadTexture("trava.jpg")
;ScaleTexture trava,10,10
;EntityTexture pla,trava
End Function

Function Create_Player()
player=CreateSphere()
PositionEntity Player,10,1,10
EntityType Player,TPlayer
End Function

Function Create_Bot(x,y,z)
For i=0 To 4
p.Bot = New Bot
p\Bot_entity = CreateCube()
EntityColor p\Bot_entity,255,0,0
;PositionEntity p\bot_entity,x,1,z
PositionEntity p\Bot_entity,Rnd(-20,0),1,Rnd(-20,20)
EntityType p\Bot_entity,TBot
Next
End Function

Function Create_Bot2(x,y,z)
For i=0 To 4
p.Bot2 = New Bot2
p\Bot2_entity = CreateCube()
EntityColor p\Bot2_entity,0,255,0
PositionEntity p\Bot2_entity,Rnd(20,0),1,Rnd(-20,20)
EntityType p\Bot2_entity,TBot2
Next
End Function

Function Update_Player()
If KeyDown(200) MoveEntity Player,0,0,.2
If KeyDown(20 MoveEntity Player,0,0,-.2
If KeyDown(203) TurnEntity Player,0,3,0
If KeyDown(205) TurnEntity Player,0,-3,0
End Function

Function Update_World_001()
Collisions TPlayer,TBot,2,2
Collisions TBot,TPlayer,2,2
Collisions TBot,TBot2,2,2
Collisions TBot2,TBot1,2,2
End Function

Function Update_Bot(x,y,z)
For p.bot = Each bot

If EntityDistance (p\Bot_entity,p\Bot2_entity)<100 Then
p\target_=p\Bot2_entity
EndIf
speed#=.03
bex#=EntityX#(p\Bot2_entity)
bez#=EntityZ#(p\Bot2_entity)
bbx#=EntityX#(p\Bot_entity)
bbz#=EntityZ#(p\Bot_entity)
bcx#=bex#-bbx#
bcz#=bez#-bbz#
bcn#=Sqr(bcx*bcx+bcy*bcy+bcz*bcz)
bcx=bcx/bcn
bcy=bcy/bcn
bcz=bcz/bcn
AlignToVector p\Bot_entity,bcx,bcy,bcz,0,.01
MoveEntity p\Bot_entity,0,0,speed#
Next
;Next
End Function

Function Update_Bot2(x,y,z)
For p.bot2 = Each bot2
;MoveEntity p\Bot_entity,0,0,.1
Next
End Function
(Offline)
 
Ответить с цитированием
Старый 14.10.2007, 16:48   #2
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Re: Ошибка в коде

В функции Update_bot() ты проверяешь тип 1, с типом 2. Причем перебираешь только тип 1. Спрашивается, от куда он возьмет тип2?

Вот, смотри в этой теме. http://boolean.name/showthread.php?t=4851
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка demon112 MidletPascal 9 13.04.2011 18:37
Где ошибка??? Sand Основной форум 12 13.12.2009 15:29
А можно ли в коде блитза как-нибудь заменить значёк и проблеме со звуком. Ganociy Blitz3D 9 02.11.2009 20:00
Ошибка Dizels Наш форум 12 26.10.2005 14:08


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


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