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

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

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

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

Ответ
 
Опции темы
Старый 16.04.2012, 17:49   #16
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Ответ: Внедрение стартого меню

Видимо, не дано мне этого понять...
Избежать использования Global к моделям врагов получилось с помощью Local, а вот игрок и камера...
if game=true
global player=CreateSphere()
........
endif

Я вот про это условие говорил...
(Offline)
 
Ответить с цитированием
Старый 16.04.2012, 18:19   #17
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Внедрение стартого меню

Сообщение от Devilox Посмотреть сообщение
Видимо, не дано мне этого понять...
Избежать использования Global к моделям врагов получилось с помощью Local, а вот игрок и камера...
if game=true
global player=CreateSphere()
........
endif

Я вот про это условие говорил...
это используется в цикле? Global-переменные можно объявлять только вне циклов и функций! Т.е. до цикла

...
Global player
Global enemy
global тряляля
...
а уже в цикле/функции:
...
if game=true
       player=CreateSphere()
       ........
endif
...
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо St_AnGer за это полезное сообщение:
Devilox (16.04.2012), L-ee-X (17.04.2012)
Старый 16.04.2012, 21:57   #18
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Ответ: Внедрение стартого меню

Спасибо, условие поставить получилось, но теперь Blitz не хочет загружать объекты, пишет Entity Does not exist, я сделал, вроде всё так...
Include "Constants.bb"
Include "Types.bb"
;--begin--;
Graphics3D 640,480,16,1
SetBuffer BackBuffer()
;--begin--;

;--objects--:
Global player
Global cam
Global shot1
Global shot2
Global shot_en1
Global enemy
Global enemy2
Global gun1
Global gun2
Global h_asp
Global pl_am
Global im_am
Global piv_fire
Global health_im
Global el_gun_ammo
Global pl_gun_ammo
Global gun_s1
;--objects--:

Global game%=0
Global update%=0

If game=0

cursor=LoadImage("textures\cursor.jpg")
MaskImage cursor,0,0,0

background=LoadTexture("menu.jpg")
back_box=CreateCube()
PositionEntity back_box,0,0,6
ScaleEntity back_box,7,5,0.1
EntityTexture back_box,background

cam2=CreateCamera()

light=CreateLight(cam2)

piv_ng=CreatePivot()
PositionEntity piv_ng,-2.75,0,4.77
ScaleEntity piv_ng,0.1,0.1,0.1

new_game=LoadMesh("models\menu\new game.3ds")
PositionEntity new_game,-3,0,5
ScaleEntity new_game,0.02,0.02,0.02
RotateEntity new_game,0,180,0
EntityPickMode new_game,2
NameEntity new_game,"ng"
EntityParent new_game,piv_ng


EndIf




If game=1

;--images--;
health_im=LoadImage("textures\health.bmp")
el_gun_ammo=LoadImage("textures\el_gun_ammo.bmp")
pl_gun_ammo=LoadImage("textures\pl_gun_ammo.bmp")
;--images--;

;--sounds--;
gun_s1=LoadSound("sounds\gun1.ogg")
;--sounds--;

;--sprites--;
shot1=LoadSprite("textures\shot1.bmp")
ScaleSprite shot1,3,3
EntityRadius shot1,1
EntityType shot1,TYPE_BULLET
HideEntity shot1

shot2=LoadSprite("textures\shot2.bmp")
ScaleSprite shot2,3,3
EntityRadius shot2,1
EntityType shot2,TYPE_BULLET
HideEntity shot2

shot_en1=LoadSprite("textures\shot3.bmp",2)
ScaleSprite shot_en1,5,5
EntityRadius shot_en1,5
EntityType shot_en1,TYPE_EN_BULLET
HideEntity shot_en1
;--sprites--;

;--main--;
pln=CreatePlane()
PositionEntity pln,0,-1,0
EntityType pln,TYPE_WALL
EntityColor pln,50,100,150

player=CreateSphere()
PositionEntity player,0,10,50
EntityRadius player,4
EntityType player, TYPE_PLAYER
EntityAlpha player,1
ScaleEntity player,1,1,1
TurnEntity player,0,180,0

cam=CreateCamera()
EntityParent cam,player
PositionEntity cam,0,5,0

enemy=LoadMesh("models\enemies\enemy1.3ds")
PositionEntity enemy,-5,10,-5
ScaleEntity enemy,0.5,0.5,0.5
MoveEntity enemy,-5,10,-5
EntityType enemy, TYPE_ENEMY
EntityRadius enemy, 4

enemy2=LoadMesh("models\enemies\enemy2.3ds")
PositionEntity enemy2,-5,10,-5
ScaleEntity enemy2,0.2,0.2,0.2
MoveEntity enemy2,-5,10,-5

box=CreateCube()
ScaleEntity box,20,20,2
TurnEntity box,0,90,0
PositionEntity box,70,0,80
EntityPickMode box,2
;--main--;

;--models--;
gun1=LoadMesh("models\level1\gun1.3ds")
ScaleEntity gun1,0.05,0.05,0.05
EntityParent gun1,cam
PositionEntity gun1,-1,-3,3
RotateEntity gun1,0,-90,0
HideEntity gun1
EntityOrder gun1,-1

gun2=LoadMesh("models\level1\gun2.3ds")
ScaleEntity gun2,0.05,0.05,0.05
EntityParent gun2,cam
PositionEntity gun2,-2,-7,0
RotateEntity gun2,0,-90,0
HideEntity gun2
EntityOrder gun2,-1

h_asp=LoadMesh("models\level1\health.3ds")
ScaleEntity h_asp,0.25,0.25,0.25
EntityType h_asp, TYPE_HEALTH
HideEntity h_asp
EntityFX h_asp,1

pl_am=LoadMesh("models\level1\pl_am.b3d")
ScaleEntity pl_am,0.1,0.1,0.1
EntityType pl_am, TYPE_PL_AMMO
EntityFX pl_am,1
HideEntity pl_am

im_am=LoadMesh("models\level1\im_am.b3d")
ScaleEntity im_am,0.1,0.1,0.1
EntityType im_am, TYPE_IMP_AMMO
PositionEntity im_am,5,1,5
EntityFX im_am,1
HideEntity im_am
;--models--;

;--pivots--;
piv_fire=CreatePivot()
EntityParent piv_fire,cam
PositionEntity piv_fire,-1.5,-1.5,8
;--pivots--;

;--collisions--;
Collisions TYPE_PLAYER, TYPE_WALL, 2, 3
Collisions TYPE_BULLET, TYPE_WALL, 2, 1
Collisions TYPE_BULLET, TYPE_ENEMY, 1, 1
Collisions TYPE_EN_BULLET, TYPE_PLAYER, 1, 1
;Collisions TYPE_EN_BULLET, TYPE_WALL, 2, 1
;--collisions--;

;--creations--;

CreateFirstAid()
CreateImpulseAmmo()
CreatePlasmaAmmo()
CreateEnemies(enemy)
;--creations--;

EndIf

;-------------------------------------------------------------

While Not KeyHit(1)

;-------------------------------------------------------------


If game=0




If EntityName(new_game)="ng"
	If CameraPick(cam2,MouseX(),MouseY())
		TurnEntity piv_ng,0,2,0
		If MouseHit(1)
			game=1
			update=1
		EndIf
	Else
		If EntityYaw(piv_ng)>0
			TurnEntity piv_ng,0,-2,0
		ElseIf EntityYaw(piv_ng)<0
			TurnEntity piv_ng,0,2,0
		EndIf
	EndIf
EndIf




EndIf








If update=1


GameInput()
GameUpdate()

EndIf

UpdateWorld()
RenderWorld()

If update=1

GameDraw()

EndIf

DrawImage cursor,MouseX(),MouseY()

Flip

Wend

End
(Offline)
 
Ответить с цитированием
Старый 16.04.2012, 22:32   #19
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Внедрение стартого меню

в таких случаях надо выкладывать проект с файлами сюда, т.к. по одному коду трудно сказать на что конкретно блиц ругается. Твой проект никто в корыстных целях использовать явно не будет.
Вообще пишет что объект не найден, т.е. или файл не загрузился, или у тебя неправильно работает условие загрузки. На каком объекте ругается? Проверяй код, и правильно ли указаны пути в загрузках ентитей.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Hulk-DS (18.04.2012)
Старый 16.04.2012, 22:39   #20
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Ответ: Внедрение стартого меню

Вот, загрузил...
Если загружать без условия, то всё нормально работает, при условии вылетает только на Update-ах, на простую загрузку объектов он не ругается...
Вложения
Тип файла: rar Game_ex.rar (649.0 Кб, 374 просмотров)
(Offline)
 
Ответить с цитированием
Старый 17.04.2012, 04:42   #21
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Внедрение стартого меню

Не туда условия ставишь. Грузить надо всё это без условий, а уже в игровом цикле по условию делать то, что это условие предполагает.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Devilox (17.04.2012)
Старый 17.04.2012, 08:45   #22
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Внедрение стартого меню

Вот, чутка изменил твой код. Работает и правильно грузится. Вроде всё понятно, изменения увидишь сразу. От себя добавил только организацию меню. Опять таки грубый набросок, но работает как часы. Принцип понятен я думаю.

Game_ex.rar

Внимательно читай что тут тебе написали выше, я реализовал именно это.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо St_AnGer за это полезное сообщение:
Devilox (17.04.2012), Hulk-DS (18.04.2012)
Старый 17.04.2012, 17:29   #23
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Ответ: Внедрение стартого меню

Большое спасибо! Очень помогло!
P.S. только Blitz коллизии не считает при попадании пули во врага, с чем это может быть связано?
(Offline)
 
Ответить с цитированием
Старый 18.04.2012, 00:07   #24
Halk-DS
Разработчик
 
Аватар для Halk-DS
 
Регистрация: 09.08.2006
Адрес: Украина
Сообщений: 431
Написано 65 полезных сообщений
(для 53 пользователей)
Ответ: Внедрение стартого меню

Лучше пули не связывать с коллизией. А просчитывать ее как то математическим образом, по векторах чтоле.
Но если тебе хочется по проще, юзай команду LinePick. Или еще проще CameraPick - но этот оператор как я сам сегодня только убедился жрет ресурсов компа оч много. Поэтому я б вообще избегал ее применения. Ну разве что где производительность до одного места.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Devilox (18.04.2012)
Старый 18.04.2012, 05:12   #25
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Внедрение стартого меню

Сообщение от Devilox Посмотреть сообщение
Большое спасибо! Очень помогло!
P.S. только Blitz коллизии не считает при попадании пули во врага, с чем это может быть связано?
Значит пуля всё-таки не попадает во врага. Кстати, в предыдущей версии твоего кода работало ведь.
(Offline)
 
Ответить с цитированием
Старый 18.04.2012, 08:20   #26
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Ответ: Внедрение стартого меню

В том-то и дело...
(Offline)
 
Ответить с цитированием
Старый 18.04.2012, 13:14   #27
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Внедрение стартого меню

Я посмотрел код который дал тебе St_AnGer. Выяснил, что у тебя не задана константа TYPE_ENEMY, добавь её.

По коду ещё: типы коллизий меняться не должны, так что лучше сделать их константами, чтоб случайно не изменить по ходу игры.
Const TYPE_ENEMY% = 8
и так далее для всех.

Попробуй среду разработки IDEal - http://www.fungamesfactory.com/, в ней необъявленные переменные подсвечиваются красным, если сделаешь опечатку то сразу увидишь (правда из инклудов константы красными показаны, но это мелочь всё равно).

Ещё в главном цикле проверка состояний через Select... Case со строковым значением, а сравнение строк медленнее чем чисел, хоть и удобнее читать, хотя при наличии констант читается тоже удобно:
Const STATE_MENU_LOAD% = 1
Const STATE_GAME% = 2
......
Global gameState% = STATE_MENU_LOAD
......
Select gameState
  Case STATE_MENU_LOAD
  ;грузим меню

  Case STATE_GAME
  ;идёт игра
End Select
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Жека за это полезное сообщение:
Devilox (18.04.2012), Hulk-DS (19.04.2012)
Старый 19.04.2012, 15:52   #28
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Ответ: Внедрение стартого меню

Спасибо, работает
(Offline)
 
Ответить с цитированием
Старый 19.04.2012, 17:59   #29
Halk-DS
Разработчик
 
Аватар для Halk-DS
 
Регистрация: 09.08.2006
Адрес: Украина
Сообщений: 431
Написано 65 полезных сообщений
(для 53 пользователей)
Ответ: Внедрение стартого меню


Сообщение от Жека Посмотреть сообщение
Попробуй среду разработки IDEal - http://www.fungamesfactory.com/, в ней необъявленные переменные подсвечиваются красным, если сделаешь опечатку то сразу увидишь (правда из инклудов константы красными показаны, но это мелочь всё равно).
Ого. Отличная штука. Не знал про ее существование, только когда то юзал протеан, но не помню уже почему перестал.
По этому поводу возник вопрос. Я например когда печатаю Graphics3d оператор, мне IDE подсвечивает варианты, но это происходит на долю секунд. Я пробую успеть за это время 2-3 раза нажать вниз что б выбрать именно оператор Graphics3d и когда жму Enter, то ничего не происходит, просто курсор опускается вниз на 1 строку. Как правильно воспользоваться, или настроить это всплывающее меню?
п.с. А то что переменные из инклудов не подсвечиваются действительно не очень. Может можно эти переменные из инклуда вставить в главный файл и добавить их в какой то искусственно созданный "Плюсик"(тот что может скрывать весь код функции в 1-ну строку, только сделать то же самое с кучей мешающих Global и Const)
(Offline)
 
Ответить с цитированием
Старый 20.04.2012, 06:17   #30
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Внедрение стартого меню

Randomize рекомендовал кому-то эту ИСР IDE, от него я узнал.
Я как только поставил и попробовал писать, понял что что-то не так как везде. Прошарил все настройки, чтобы посмотреть какие есть возможности и чтобы понять как автоподстановку вызвать и настроить мелочи. Вызов автоподстановки - Alt+Space. Выбор выделенной строки из списка подстановки: Tab.
Ещё крутые вещи в IDEal:
- работа с типами, ставишь "\" и он тебе все поля типа показывает в списке подстановки.
- автоподстановка своих функций и типов
Из минусов:
- не работает копировать/вставить через Ctrl+Ins / Shift+Ins, а я привык к ним.

Я отказался от использования инклудов, они мне не нужны (интересно, когда только начинал кодить в блитце использовал их) - парсер кода справляется с большим количеством строк + сворачиваемость функций в линию + навигация через Code Explorer.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Hulk-DS (20.04.2012)
Ответ


Опции темы

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

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


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


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