Разрывная граната
Сейчас я вас научу как создать разрывную гранату (естественно виртуальную).
Первым делом нужно создать типы [blitz] Type Oskolok Field Entity Field Dist End Type Type Grenade Field Entity End Type [/blitz] Далее создаем функции создания и обработки осколков, создание самой гранаты и ее обработки. [blitz] Const OSKT=2;Для столкновения с каким нибудь объектом (напр. с ботом) Const GRNDT=3 ;Это неб. поправка Global Radius Function CreateOskolok(X#,Y#,Z#,P#,YA#,R#) o.oskolok=new oskolok o\entity = CreateSprite() ScaleSprite o\entity,2,2 EntityColor o\entity,255,0,0 PositionEntity o\entity,X#,Y#,Z# RotateEntity o\entity,P#,YA#,R# EntityType o\entity,OSKT End Function Function CreateGrenade(X#,Y#,Z#) g.Grenade = new grenade g\entity=createsphere() PositionEntity X#,Y#,Z# EntityType g\entity,GRNDT End Function Function UpdateGrenade(Kollisia1) For g.Grenade=Each Grenade If KeyHit(57) Then CreateGrenade(0,5,0) MoveEntity G\entity,0,-0.1,0.5 If EntityCollided(G\entity,Kollisia1) Then X=EntityX(g\entity) Y=EntityY(g\entity) Z=EntityZ(g\entity) FreeEntity g\entity Delete g For x=0 to 36 Radius=Radius+10 CreateOskolok(X,Y,Z,0,Radius,0) Next End if Next End Function Function UpdateOskolki(Kollisia1) For o.oskolok = Each Oskolok MoveEntity o\entity,0,0,1 o\dist=o\dist+1 CO=EntityCollided(o\entity,Kollisia1) If CO<>0 FreeEntity CO; Это если объект столкнулся напр. с ботом elseif o\Dist>100 FreeEntity o\entity Delete o end if Next End Function [/blitz] Ну вот и все дальше напишу наглядный пример. |
Re: Разрывная граната
А готовый проимер незя?
Ато ручками соберать незнамо что! както неочень тянет! Хотябы фотки кинь чтоли!=) |
Re: Разрывная граната
Цитата:
faq полезное , respect !! |
Re: Разрывная граната
Вложений: 2
Цитата:
Э... Небольшая поправка чтоли Вместо For x=0 to 36 Radius=Radius+10 CreateOskolok(X,Y,Z,0,Radius,0) Next Лучше ;) CreateOskolok(X,Y,Z,0,10,0) CreateOskolok(X,Y,Z,0,20,0) CreateOskolok(X,Y,Z,0,30,0) CreateOskolok(X,Y,Z,0,40,0) CreateOskolok(X,Y,Z,0,50,0) CreateOskolok(X,Y,Z,0,60,0) CreateOskolok(X,Y,Z,0,70,0) CreateOskolok(X,Y,Z,0,80,0) CreateOskolok(X,Y,Z,0,90,0) CreateOskolok(X,Y,Z,0,100,0) CreateOskolok(X,Y,Z,0,110,0) CreateOskolok(X,Y,Z,0,120,0) CreateOskolok(X,Y,Z,0,130,0) CreateOskolok(X,Y,Z,0,140,0) CreateOskolok(X,Y,Z,0,150,0) CreateOskolok(X,Y,Z,0,160,0) CreateOskolok(X,Y,Z,0,170,0) CreateOskolok(X,Y,Z,0,180,0) CreateOskolok(X,Y,Z,0,190,0) CreateOskolok(X,Y,Z,0,200,0) CreateOskolok(X,Y,Z,0,210,0) CreateOskolok(X,Y,Z,0,220,0) CreateOskolok(X,Y,Z,0,230,0) CreateOskolok(X,Y,Z,0,240,0) CreateOskolok(X,Y,Z,0,250,0) CreateOskolok(X,Y,Z,0,260,0) CreateOskolok(X,Y,Z,0,270,0) CreateOskolok(X,Y,Z,0,280,0) CreateOskolok(X,Y,Z,0,290,0) CreateOskolok(X,Y,Z,0,300,0) CreateOskolok(X,Y,Z,0,310,0) CreateOskolok(X,Y,Z,0,320,0) CreateOskolok(X,Y,Z,0,330,0) CreateOskolok(X,Y,Z,0,340,0) CreateOskolok(X,Y,Z,0,350,0) CreateOskolok(X,Y,Z,0,360,0) Ну а вот и собсно пример реализующий гранату(управление броском гранаты - пробел) |
Re: Разрывная граната
Цитата:
For n=1 to 36 CreateOskolok(X,Y,Z,0,n*10,0) Next |
Re: Разрывная граната
Цитата:
ошибка в одном слове !! |
Re: Разрывная граната
For n=0 to 350 step 10
CreateOskolok(X,Y,Z,0,n,0) Next :-) :P |
Re: Разрывная граната
jimon, а степ будет производительнее чем умножение? ;)
|
Re: Разрывная граната
стэп - проще с позиции читабельности, с позиции интерпретатора - суммирование, которое быстрее умножения.
|
Часовой пояс GMT +4, время: 06:18. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot