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

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

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

FAQ Туториалы и часто задаваемые вопросы

Ответ
 
Опции темы
Старый 09.09.2007, 21:54   #1
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 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
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: Разрывная граната

Хотябы фотки кинь чтоли!=)
кидай гранату !!

faq полезное , respect !!
(Offline)
 
Ответить с цитированием
Старый 10.09.2007, 16:09   #4
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 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
moka
.
 
Регистрация: 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
IGR
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
jimon
 
Сообщений: n/a
Re: Разрывная граната

For n=0 to 350 step 10
CreateOskolok(X,Y,Z,0,n,0)
Next
 
Ответить с цитированием
Старый 13.09.2007, 17:54   #8
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Разрывная граната

jimon, а степ будет производительнее чем умножение?
(Offline)
 
Ответить с цитированием
Старый 13.09.2007, 18:09   #9
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: Разрывная граната

стэп - проще с позиции читабельности, с позиции интерпретатора - суммирование, которое быстрее умножения.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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