|
FAQ Туториалы и часто задаваемые вопросы |
09.09.2007, 21:54
|
#1
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Разрывная граната
Сейчас я вас научу как создать разрывную гранату (естественно виртуальную).
Первым делом нужно создать типы
[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]
Ну вот и все дальше напишу наглядный пример.
__________________
|
(Offline)
|
|
10.09.2007, 01:28
|
#2
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: Разрывная граната
А готовый проимер незя?
Ато ручками соберать незнамо что! както неочень тянет!
Хотябы фотки кинь чтоли!=)
|
(Offline)
|
|
10.09.2007, 12:54
|
#3
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Re: Разрывная граната
Хотябы фотки кинь чтоли!=)
|
кидай гранату !!
faq полезное , respect !!
|
(Offline)
|
|
10.09.2007, 16:09
|
#4
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Re: Разрывная граната
А готовый проимер незя?
Ато ручками соберать незнамо что! както неочень тянет!
Хотябы фотки кинь чтоли!=)
|
Просто надо было подождать
Э... Небольшая поправка чтоли
Вместо
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)
Ну а вот и собсно пример реализующий гранату(управление броском гранаты - пробел)
__________________
|
(Offline)
|
|
13.09.2007, 15:54
|
#5
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Разрывная граната
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)
|
=
For n=1 to 36
CreateOskolok(X,Y,Z,0,n*10,0)
Next
|
(Offline)
|
|
13.09.2007, 15:58
|
#6
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Re: Разрывная граната
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)
|
фу, вот это вы мочите !!
ошибка в одном слове !!
|
(Offline)
|
|
13.09.2007, 17:43
|
#7
|
|
Re: Разрывная граната
For n=0 to 350 step 10
CreateOskolok(X,Y,Z,0,n,0)
Next
|
|
|
13.09.2007, 17:54
|
#8
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Разрывная граната
jimon, а степ будет производительнее чем умножение?
|
(Offline)
|
|
13.09.2007, 18:09
|
#9
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Re: Разрывная граната
стэп - проще с позиции читабельности, с позиции интерпретатора - суммирование, которое быстрее умножения.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:30.
|