Форум по блитц3д
| |
RWS | Дата: Суббота, 19.01.2008, 08:56 | Сообщение # 1 |
ламер
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline
| Отличный форум по блитц3д и с++. Ресурс пока малопосещаемый , но пользователи уже есть. . Заходите на форум и мы будем рады вашему присутствию. http://blitz3d.flybb.ru/
|
|
| |
Dzirt | Дата: Воскресенье, 17.02.2008, 16:33 | Сообщение # 2 |
форумовец
Группа: Модераторы
Сообщений: 260
Награды: 2
Репутация: 9
Статус: Offline
| RWS, Щось поки не помітно
Головне в грі не графіка,а сюжет......хоча без першого його й розуміти не хочеться.)
|
|
| |
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
| Я конечно извиняюсь но как у новичка у меня часто возникают вопросы. Вот хочу чтобы мой игрок пригал и вроди сделал но мне ненравится. У меня он прыгает когда колизит с землей и разными другими обектами и етим может как говорят прыгнуть "выше кришы" а мне надо чтобы он немог прыгнуть например на большое здание что мне делать?
|
|
| |
|