[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]


  • Страница 1 из 1
  • 1
Модератор форума: Spidy, turBO  
Форум мира Blitz3D » Язык Blitz3D » Blitz3D и с чем его едят » Форум по блитц3д
Форум по блитц3д
RWSДата: Суббота, 19.01.2008, 08:56 | Сообщение # 1
ламер
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline
Отличный форум по блитц3д и с++. Ресурс пока малопосещаемый , но пользователи уже есть. biggrin . Заходите на форум и мы будем рады вашему присутствию. http://blitz3d.flybb.ru/
 
DzirtДата: Воскресенье, 17.02.2008, 16:33 | Сообщение # 2
форумовец
Группа: Модераторы
Сообщений: 260
Награды: 2
Репутация: 9
Статус: Offline
RWS, Щось поки не помітно happy

Головне в грі не графіка,а сюжет......хоча без першого його й розуміти не хочеться.)
 
BlitzBestДата: Пятница, 15.08.2008, 18:53 | Сообщение # 3
ламер
Группа: Пользователи
Сообщений: 12
Награды: 0
Репутация: 0
Статус: Offline
1

Сообщение отредактировал BlitzBest - Суббота, 16.08.2008, 14:28
 
turBOДата: Воскресенье, 17.08.2008, 05:35 | Сообщение # 4
Полковник
Группа: Администраторы
Сообщений: 297
Награды: 5
Репутация: 12
Статус: Offline
Quote
Данный форум временно недоступен либо отключен в соответствии с пользовательским соглашением сервиса бесплатных форумов — flybb.ru
Форум временно недоступен либо отключен...

М-да...


If 2+2<>4 Then Restart
 
PetrofanДата: Четверг, 21.08.2008, 10:26 | Сообщение # 5
ламер
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
Хочу написать игру от первого лица. И столкнулся с проблемой создал искуственый интелект
и хочу его "розмножыть" то есть сделать много монстров и разместить их в разных позицыях
но приетом сохраняя интелект вычисления?
И вопрос №2 как загружать уровни?
 
turBOДата: Четверг, 21.08.2008, 12:20 | Сообщение # 6
Полковник
Группа: Администраторы
Сообщений: 297
Награды: 5
Репутация: 12
Статус: Offline
На первый: используй типы данных! Затем логику монстров прогонишь по типу
Quote

for m.monsters=each monsters
...
[AI монстра]
...
next

Второй уточни: Какие уровни? 3ds, bsp, другие?..


If 2+2<>4 Then Restart
 
PetrofanДата: Пятница, 22.08.2008, 12:41 | Сообщение # 7
ламер
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
С типами я пока невладах можешь поконкретней описать как сделать?
Уровни я хочу загружать в формате " b3d "+ 3ds.
А игру я решил писать в стиле готика где игрок главний герой убивает зомби бродящих по улицам, домам, канализациям, тд и тп...
Уровни рисую в Cartography Shop 4.1 может посоветуешь что нибуть другое.
Приведу интелект какой хочу использовать. Как его переделать с использованием типов даних.
Помоги пожалуйста !!!!

Graphics3D 640,480,2
SetBuffer BackBuffer()
Global fntArial1=LoadFont("Verdana",24,1,0,0)
Global fntArial2=LoadFont("Verdana",16,1,0,0)
Global x#,y#,z#,xt#,yt#,zt#,xc#,yc#,zc#,xl#,yl#,zl#
Global taxi,police,flash1,flash2
Const CAR=1,WALL=2,TARG=3
Collisions CAR,WALL,2,0
Collisions TARG,WALL,2,3
Collisions CAR,TARG,2,1
CreateWorld() ;Создаём "мир" (см. функцию ниже)
CreatePolice() ;Создаём "Мента" (см. функцию ниже)
CreateTaxi() ;Создаём "Такси" (см. функцию ниже)
PositionEntity taxi,10,1.3,0 ; Устанавливаем начальную позицию Такси
While Not KeyHit(1)
Cls
If KeyDown( 205 ) x=.1 Else If KeyDown( 203 ) x=-.1 Else x=0 ; Перемещение "Вперёд-Назад"
If KeyDown( 208 ) z=-.1 Else If KeyDown( 200 ) z=.1 Else z=0 ; Вращение "Влево-Вправо"
If KeyHit( 57 ) m=1-m ; Старт-Стоп
xt#=EntityX#(taxi) ; смотрим текущие координаты Такси по оси Х
zt#=EntityZ#(taxi) ; смотрим текущие координаты Такси по оси Z
xl#=EntityX#(police) ; смотрим текущие координаты Мента по оси X
zl#=EntityZ#(police) ; смотрим текущие координаты Мента по оси Z
cx#=xt-xl
cz#=zt-zl
cn#=Sqr(cx*cx+cz*cz)
cx=cx/cn ; вычисляем промежуточную координату по оси X между Ментом и Такси для ориентации Мента
cz=cz/cn ; вычисляем промежуточную координату по оси Z между Ментом и Такси для ориентации Мента
If colid=0 And m=1 AlignToVector police,cx,0,cz,0,.04 ; Если Мент не упёрся в "Стену" и не "догнал" Такси выравниваем Мента относительно промежуточных координат
If EntityCollided (police,WALL) colid=1 TurnEntity police,0,1,0 Else colid=0 ; Если Мент "упёрся" в стену, поворачиваем влево, пока не перестанем "упираться"
If EntityCollided (police,TARG) m=0 ; Если Мент "догнал" такси, останавливаем "погоню"
If EntityDistance (police,taxi)>2 MoveEntity police,0,0,m*.25 Else m=0 ; Если дистанция между Ментом и Такси больше 2, двигаем Мента, в ином случае - останавливаем "погоню"
MoveEntity taxi,0,0,z*4 ; передвигаем Такси
TurnEntity taxi,0,-x*20,0 ; поворачиваем Такси
UpdateWorld
RenderWorld
SetFont fntArial2
Color 0,255,0
Text 180,10,"Press SPACEBAR for Start or Stop CHASE"
Text 180,30,"CURSOR KEYS for driving Taxi"
SetFont fntArial1
If m=1 Color 0,255,0 : Text 260,400,"START CHASE"
If m=0 Color 255,0,0 : Text 260,400,"STOP CHASE"
Flip
Wend
Function CreateWorld()
light=CreateLight()
TurnEntity light,30,90,0
plane=CreatePlane()
EntityColor plane,50,100,0
cam1=CreateCamera()
CameraRange cam1,1,2500
RotateEntity cam1,45,0,0
PositionEntity cam1,0,18,-3
End Function
Function CreatePolice()
police=CreateCube()
ScaleEntity police,1.4,.75,1
PositionEntity police,0,1.3,0
EntityRadius police,3 ; Устанавливаем радиус коллизии Мента
EntityType police,CAR ; Устанавливаем тип коллизии Мента
End Function
Function CreateTaxi()
taxi=CreateCube()
ScaleEntity taxi,1.4,.75,1
PositionEntity taxi,0,1.3,100
EntityColor taxi,255,200,0
EntityRadius taxi,3 ; Устанавливаем радиус коллизии Такси
EntityType taxi,TARG ; Устанавливаем тип коллизии Такси
camera=CreateCamera()
PositionEntity camera,0,22,-40
End Function

 
blitz3dДата: Вторник, 26.08.2008, 10:09 | Сообщение # 8
Admin
Группа: Администраторы
Сообщений: 203
Награды: 3
Репутация: 7
Статус: Offline
Вот тебе вариант как использовать типы. Обработку противников я вынес отдельной процедурой UpdatePolices. CreatePolice(colvo) теперь процедура в которую передается параметр сколько нужно создать врагов. Переменную m, отвечающую за активность погони, описал глобальной.

Бага: у тебя два раза создается камера (camera и cam1)
Если возникнут вопросы - спрашивай!

[некоторые коменты из оригинального кода были вырезаны ввиду ограничения на на количество символов на форуме]


перед тобой две таблетки - красная и синяя - какую ты выберешь?
 
blitz3dДата: Вторник, 26.08.2008, 10:13 | Сообщение # 9
Admin
Группа: Администраторы
Сообщений: 203
Награды: 3
Репутация: 7
Статус: Offline
Code
Type Polices
     Field x,y,mesh
End Type

Graphics3D 640,480,2
SetBuffer BackBuffer()  
Global fntArial1=LoadFont("Verdana",24,1,0,0)  
Global fntArial2=LoadFont("Verdana",16,1,0,0)  
Global m,x#,y#,z#,xt#,yt#,zt#,xc#,yc#,zc#,xl#,yl#,zl#  
Global taxi,flash1,flash2  
Const CAR=1,WALL=2,TARG=3  
Collisions CAR,WALL,2,0  
Collisions TARG,WALL,2,3  
Collisions CAR,TARG,2,1  
CreateWorld()
CreatePolice(10)
CreateTaxi()
PositionEntity taxi,10,1.3,0
While Not KeyHit(1)  
Cls  
If KeyDown( 205 ) x=.1 Else If KeyDown( 203 ) x=-.1 Else x=0   
If KeyDown( 208 ) z=-.1 Else If KeyDown( 200 ) z=.1 Else z=0  
If KeyHit( 57 ) m=1-m ; Старт-Стоп

UpdatePolices()  

MoveEntity taxi,0,0,z*4
TurnEntity taxi,0,-x*20,0
UpdateWorld  
RenderWorld  
SetFont fntArial2  
Color 0,255,0  
Text 180,10,"Press SPACEBAR for Start or Stop CHASE"  
Text 180,30,"CURSOR KEYS for driving Taxi"  
SetFont fntArial1  
If m=1 Color 0,255,0 : Text 260,400,"START CHASE"  
If m=0 Color 255,0,0 : Text 260,400,"STOP CHASE"  
Flip  
Wend

Function CreateWorld()  
light=CreateLight()  
TurnEntity light,30,90,0  
plane=CreatePlane()  
EntityColor plane,50,100,0
End Function

Function CreatePolice(colvo)  
;colvo - количество полиций

For a= 1 To colvo
   police.Polices=New Polices
   police\mesh=CreateCube()
   ScaleEntity police\mesh,1.4,.75,1  
   PositionEntity police\mesh,Rnd(-100,100),1,Rnd(-100,100);0,1.3,0  
   EntityRadius police\mesh,3
   EntityType police\mesh,CAR
Next
End Function

Function CreateTaxi()  
taxi=CreateCube()  
ScaleEntity taxi,1.4,.75,1  
PositionEntity taxi,0,1.3,100  
EntityColor taxi,255,200,0  
EntityRadius taxi,3
EntityType taxi,TARG
camera=CreateCamera()  
PositionEntity camera,0,22,-40  
End Function  

Function UpdatePolices()  
For police.polices = Each polices
   xt#=EntityX#(taxi)  
   zt#=EntityZ#(taxi)
   xl#=EntityX#(police\mesh)  
   zl#=EntityZ#(police\mesh)  
   cx#=xt-xl  
   cz#=zt-zl  
   cn#=Sqr(cx*cx+cz*cz)  
   cx=cx/cn  
   cz=cz/cn
   If colid=0 And m=1 AlignToVector police\mesh,cx,0,cz,0,.04
   If EntityCollided (police\mesh,WALL) colid=1 TurnEntity police\mesh,0,1,0 Else colid=0  
   If EntityCollided (police\mesh,TARG) m=0   
   If EntityDistance (police\mesh,taxi)>2 MoveEntity police\mesh,0,0,m*.25 Else m=0  
Next
End Function


перед тобой две таблетки - красная и синяя - какую ты выберешь?
 
PetrofanДата: Среда, 27.08.2008, 09:07 | Сообщение # 10
ламер
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
Я конечно извиняюсь но как у новичка у меня часто возникают вопросы. Вот хочу чтобы мой игрок пригал и вроди сделал но мне ненравится. У меня он прыгает когда колизит с землей и разными другими обектами и етим может как говорят прыгнуть "выше кришы" а мне надо чтобы он немог прыгнуть например на большое здание что мне делать?
 
Форум мира Blitz3D » Язык Blitz3D » Blitz3D и с чем его едят » Форум по блитц3д
  • Страница 1 из 1
  • 1
Поиск: