помогите с выстрелом в объекты
Хотел попросить знающих программистов .
Я создал обьект который стреляет шариком по кубику . Хотел попросить как сделать чтобы исчез и кубик и шарик при столкновении (при выстреле) ,и чтоб на месте стокновения был небольшой эффект взрыва (самого простого ) вот пример : 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 |
Ответ: помогите с выстрелом в объекты
Ээх ребят, я чуть чуть поугорал над кодом))))
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] |
Ответ: помогите с выстрелом в объекты
|
Ответ: помогите с выстрелом в объекты
Цитата:
Я вставил твой код за место моего ,но нащёт удаления самого кубика(стены) неполучаеться как только не пробовать сам я доробатовать программу . |
кто поможет с выстрелом в объекты
Мама дорогая а как сделать что б кубик ищез (стена)
Не получаеться у меня ,уже пот на клавиатуру капает !!! Я весь в мыле от печатания на битце . НАРОД !!! кто нибудь подскажите как сделать что б обьект удалился в моём примере . :SOS: :SOS: :SOS: :SOS: :SOS: :( :( :( :( |
Ответ: помогите с выстрелом в объекты
Подсказываю:
FreeEntity. Какое такое entity надо free - думай сам, мозги упражнять полезно. //Раздача удочек окончена, рыбы сегодня нет. |
Ответ: помогите с выстрелом в объекты
мне лень долго вникать в код) ну примерно так:
Цитата:
|
Ответ: помогите с выстрелом в объекты
Цитата:
дело втом что у меня шарик - это переменная (на шарик можно сделать что б он ищезал) а вот стена это обьект один и его просто так командной FreeEntity не удолишь , выводит сообщение и прирывает программу и из памяти этот обьект не удоляеться . ПЛАЧУ :''(( :''(( :''(( :''(( :''(( :''(( :''(( |
Ответ: помогите с выстрелом в объекты
Напиши тоже самое, как для шарика, со стеной, и потом проходись по типам стены и шарика и удаляй то что тебе нужно
|
Ответ: помогите с выстрелом в объекты
Шурик, первый урок: Не используй для таких целей обычные переменные. Юзай одну очень хорошую вещь: ТИПЫ. Создаешь тип Global_, и туда уже пихай свои глобальные переменные, в данном сучае ссылку на стену. Потом , делай условие не столкнулся ли шарик со стеной??? Если да, то :
1) Ищем в Global_ нашу стену. Удоляем ее. Выгружаем ссылку на стену из памяти(Delete [ссылка]). все. ее больше не будет в памяи и обратиться к ней не сможешь. И проверка на Null тебе в помощь:):) ЗЫ для незнающих: Null - объект, который не существует:):) |
Ответ: помогите с выстрелом в объекты
может и не в тему, а как можно замутить такую же фигню если вместо шарика модель пули? ну и чтобы на месте столкновения появлялась деколь от выстрела
|
Ответ: помогите с выстрелом в объекты
Colossus,если модель пули небольшая - то это маразм. Спрайты forever. А вообще модель пули или шарика - только по форме отличаются, ну и участком памяти:)
|
мощный вопрос !!!!!!!!!!!!!!!!!!!!!!!!!
У МЕНЯ сверх мощный вопрос !!! он немного по текстурам и строению !!!
много видел в играх разных, огромные дырки в кирпичных стенах, или всякие руины из кирпича - !!! МАЛЕНЬКИЙ вопрос как так сделано ??? ИЛИ как нанести текстуры на стенку что ббыли видны в дырке обломки кирпича !!!??????????? |
Ответ: помогите с выстрелом в объекты
не забивай голову подобными вещами :) Это сложно
|
Ответ: помогите с выстрелом в объекты
ну вот допустим как мне зафиксировать коллизию пули с ботом? бот идет как аниммешь а коллизии у него чото стремные... вот как мне замутить всю это баньку?
|
Часовой пояс GMT +4, время: 18:11. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot