|
11.12.2009, 01:54
|
#1
|
Нуждающийся
Регистрация: 11.12.2009
Сообщений: 77
Написано 2 полезных сообщений (для 2 пользователей)
|
помогите с выстрелом в объекты
Хотел попросить знающих программистов .
Я создал обьект который стреляет шариком по кубику .
Хотел попросить как сделать чтобы исчез и кубик и шарик при столкновении (при выстреле) ,и чтоб на месте стокновения был небольшой эффект взрыва (самого простого )
вот пример :
Graphics3D 640,480,32,2
SetBuffer BackBuffer()
shar=CreateSphere() ; - создаём шар
HideEntity shar ;- скрываем шар
player=CreateCube() ;- создаём куб(игрока)
cam=CreateCamera() ;-создаём камеру
PositionEntity cam,0,3,-15 ;- позиция камеры
EntityParent cam , player ;- привязка камеры с зади игрока
lit=CreateLight() ;- свет
Type Dude
Field entity
End Type
stena=CreateCube () ;- создаём обьект (СТЕНА)
PositionEntity stena , 0 ,0 ,50
Repeat
For d.Dude=Each Dude
MoveEntity d\entity,0,0,2
If EntityDistance(cam,d\entity)>150 ;- если при выстреле шарик улетает
FreeEntity d\entity ;- за 150 ,то он удаляеться с
Delete d ;- поверхности и из памяти
EndIf
Next
For d.Dude=Each Dude ;- если при выстреле шарик сталкиваеться
MoveEntity d\entity,0,0,1.1 ;- с кубиком(СТЕНА) , то шарик ищезает
If EntityDistance (d\entity,stena)<5 ;- с поверхности и из памяти
FreeEntity d\entity
Delete d
EndIf
Next
If MouseHit(1) ; - нажатие мыше при выстреле
d.Dude=New Dude ; - создаём копии шариков
d\entity=CopyEntity( shar )
PositionEntity d\entity,EntityX#(player,1),EntityY#(player),Entit yZ#(player,1) ;- привязка
EndIf ;- шариков кубика и камеры
If KeyDown(200) MoveEntity player,0,0,1 ;- управление
If KeyDown(208 ) MoveEntity player,0,0,-1
If KeyDown(203) MoveEntity player,-1,0,0
If KeyDown(205) MoveEntity player,1,0,0
RenderWorld
UpdateWorld
Flip
Until KeyHit(1)
End
Последний раз редактировалось shyrikkk, 11.12.2009 в 21:40.
|
(Offline)
|
|
11.12.2009, 07:31
|
#2
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: помогите с выстрелом в объекты
Ээх ребят, я чуть чуть поугорал над кодом))))
Shyrikk, во первых, делать два цикла For D.Dude не обязательно, достаточно лишь один раз пройтись по ним, и поставить три условия - улетел "за 150", врезался в стену, и врезался в другого чувака.
Вот смотри:
[code=blitzbasic]
For d.Dude=Each Dude
Death=false ;Довольно важный момент
MoveEntity d\entity,0,0,2
;первое условие - расстояние от камеры
If EntityDistance(cam,d\entity)>150 then Death=true
If EntityDistance (d\entity,stena)<5 then Death=true
For D_.dude =each dude ; Переменная D_, чтоб игрока не путать с другими
If D_<>D and entitydistance(D_\entity,D\entity)<5 then
Death=true
;Сдесь создаешь взрыв от шарика
exit
endif
next
If DEATH then
FreeEntity D\entity
Delete D
EndIf
Next
[/code]
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
11.12.2009, 14:44
|
#3
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: помогите с выстрелом в объекты
Дам совет почаще заходи сюда
а в твоем случае сюда
|
(Offline)
|
|
11.12.2009, 17:56
|
#4
|
Нуждающийся
Регистрация: 11.12.2009
Сообщений: 77
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: помогите с выстрелом в объекты
Сообщение от Павел
Ээх ребят, я чуть чуть поугорал над кодом))))
Shyrikk, во первых, делать два цикла For D.Dude не обязательно, достаточно лишь один раз пройтись по ним, и поставить три условия - улетел "за 150", врезался в стену, и врезался в другого чувака.
Вот смотри:
[code=blitzbasic]
For d.Dude=Each Dude
Death=false ;Довольно важный момент
MoveEntity d\entity,0,0,2
;первое условие - расстояние от камеры
If EntityDistance(cam,d\entity)>150 then Death=true
If EntityDistance (d\entity,stena)<5 then Death=true
For D_.dude =each dude ; Переменная D_, чтоб игрока не путать с другими
If D_<>D and entitydistance(D_\entity,D\entity)<5 then
Death=true
;Сдесь создаешь взрыв от шарика
exit
endif
next
If DEATH then
FreeEntity D\entity
Delete D
EndIf
Next
[/code]
|
Павел спасибо за то что откликнулся !
Я вставил твой код за место моего ,но нащёт удаления самого кубика(стены) неполучаеться как только не пробовать сам я доробатовать программу .
|
(Offline)
|
|
11.12.2009, 21:39
|
#5
|
Нуждающийся
Регистрация: 11.12.2009
Сообщений: 77
Написано 2 полезных сообщений (для 2 пользователей)
|
кто поможет с выстрелом в объекты
|
(Offline)
|
|
11.12.2009, 21:48
|
#6
|
scientist.alien
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений (для 2,593 пользователей)
|
Ответ: помогите с выстрелом в объекты
Подсказываю:
FreeEntity. Какое такое entity надо free - думай сам, мозги упражнять полезно.
//Раздача удочек окончена, рыбы сегодня нет.
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab. We LOVE you. We MADE you.
|
(Offline)
|
|
11.12.2009, 22:29
|
#7
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: помогите с выстрелом в объекты
мне лень долго вникать в код) ну примерно так:
If *твое условие(расстояние или сталкновение)* Then
FreeEntity d\entity : Delete d
Endif
|
Так если я не ошибаюсь.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
11.12.2009, 23:36
|
#8
|
Нуждающийся
Регистрация: 11.12.2009
Сообщений: 77
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: помогите с выстрелом в объекты
Сообщение от Igorian
мне лень долго вникать в код) ну примерно так:
Так если я не ошибаюсь.
|
про этот код который ты написал я знаю как начал изучать BLITZ
дело втом что у меня шарик - это переменная (на шарик можно сделать что б он ищезал)
а вот стена это обьект один и его просто так командной FreeEntity не удолишь , выводит сообщение и прирывает программу и из памяти этот обьект не удоляеться .
ПЛАЧУ
|
(Offline)
|
|
15.12.2009, 19:38
|
#9
|
Бывалый
Регистрация: 25.12.2007
Адрес: г. Краснодар
Сообщений: 894
Написано 421 полезных сообщений (для 1,079 пользователей)
|
Ответ: помогите с выстрелом в объекты
Напиши тоже самое, как для шарика, со стеной, и потом проходись по типам стены и шарика и удаляй то что тебе нужно
|
(Offline)
|
|
17.12.2009, 17:34
|
#10
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: помогите с выстрелом в объекты
Шурик, первый урок: Не используй для таких целей обычные переменные. Юзай одну очень хорошую вещь: ТИПЫ. Создаешь тип Global_, и туда уже пихай свои глобальные переменные, в данном сучае ссылку на стену. Потом , делай условие не столкнулся ли шарик со стеной??? Если да, то :
1) Ищем в Global_ нашу стену. Удоляем ее. Выгружаем ссылку на стену из памяти(Delete [ссылка]). все. ее больше не будет в памяи и обратиться к ней не сможешь. И проверка на Null тебе в помощь ЗЫ для незнающих: Null - объект, который не существует
Последний раз редактировалось Reizel, 17.12.2009 в 17:35.
Причина: Написал "Узай" вместо "Юзай":):):)
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Reizel за это полезное сообщение:
|
|
16.01.2010, 20:29
|
#11
|
Разработчик
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений (для 92 пользователей)
|
Ответ: помогите с выстрелом в объекты
может и не в тему, а как можно замутить такую же фигню если вместо шарика модель пули? ну и чтобы на месте столкновения появлялась деколь от выстрела
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb
Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)
Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
|
(Offline)
|
|
16.01.2010, 22:35
|
#12
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: помогите с выстрелом в объекты
Colossus,если модель пули небольшая - то это маразм. Спрайты forever. А вообще модель пули или шарика - только по форме отличаются, ну и участком памяти
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
17.01.2010, 20:26
|
#13
|
Нуждающийся
Регистрация: 11.12.2009
Сообщений: 77
Написано 2 полезных сообщений (для 2 пользователей)
|
мощный вопрос !!!!!!!!!!!!!!!!!!!!!!!!!
У МЕНЯ сверх мощный вопрос !!! он немного по текстурам и строению !!!
много видел в играх разных, огромные дырки в кирпичных стенах,
или всякие руины из кирпича - !!!
МАЛЕНЬКИЙ вопрос как так сделано ???
ИЛИ как нанести текстуры на стенку что ббыли видны в дырке обломки кирпича !!!???????????
|
(Offline)
|
|
17.01.2010, 22:17
|
#14
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: помогите с выстрелом в объекты
не забивай голову подобными вещами Это сложно
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.01.2010, 14:22
|
#15
|
Разработчик
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений (для 92 пользователей)
|
Ответ: помогите с выстрелом в объекты
ну вот допустим как мне зафиксировать коллизию пули с ботом? бот идет как аниммешь а коллизии у него чото стремные... вот как мне замутить всю это баньку?
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb
Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)
Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:16.
|