forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Как сделать стрельбу (http://forum.boolean.name/showthread.php?t=19903)

softcrasoft 09.07.2015 15:48

Как сделать стрельбу
 
Приветствую.
Я уже делал подобную тему, но из-за того что я все описал не так как надо, не получил понятного ответа.
Итак:
У меня есть собственно сам blitz3d.
Там написана не до игра, где спереди меня и чуть левее враг.
Стрелкой вверх я иду вверх, вниз иду вниз.
Влево поворачиваюсь влево, вправо поворачиваюсь вправо.
И вот сам вопрос:
Как сделать стрельбу?
что бы если я повернут прямо к противнику и жал пробел, воспроизводился взук выстрела. И если объект по центру, что бы выполнялся блок, где идет воспроизведение звука крика, и отнятие hp.
Как такие вещи можно сделать?
Если б я не поворачивался а перемещался, я бы сравнивал по оси y. Но с поворотами...
Сразу предупрежу. тригонометрию не знаю.
И прошу кстати туторы различные не предлагать, а описать хотя бы алгоритм по моей задаче.
Удачи!

L-ee-X 09.07.2015 15:52

Ответ: Как сделать стрельбу
 
Открой справку в конце то концов профессионал, изучи хоть не много....
Такое ощущение что тут за тебя игру пишут а ты только как Ген. Директор идеи выдвигаешь, а справку наверное в глаза не видел. Где же твои профессиональные навыки то.

softcrasoft 09.07.2015 16:21

Ответ: Как сделать стрельбу
 
в справку я смотрел в первую очередь. нет там инфы про стрельбу и даже тому подобные вещи. типа функции, которая возвращает в центре ли указанный объект.
По поводу игр, я прошу не код а алгоритм. читайте внимательней

L-ee-X 09.07.2015 16:23

Ответ: Как сделать стрельбу
 
Так в справке этого и не будет. В справке все есть для того чтоб это сделать. Сложного там ни чего нет.

softcrasoft 09.07.2015 16:26

Ответ: Как сделать стрельбу
 
ну вы то может тригонометрию знаете, а я нет. там даже функций для того что бы осуществить нет. ну или по крайней мере я их не нашел.

Nerd 09.07.2015 16:41

Ответ: Как сделать стрельбу
 

L-ee-X 09.07.2015 16:46

Ответ: Как сделать стрельбу
 
Цитата:

Сообщение от Nerd (Сообщение 297473)

Да что толку он найдет её? Следующий вопрос будет и что с ней делать? Как мне написать, какой алгоритм и тд

softcrasoft 09.07.2015 16:56

Ответ: Как сделать стрельбу
 
похоже EntityRoll# это то, но как проверить, направлено ли это объекту. да и вообще ось z это ж вроде вперед. хотя как там ппо тригонометрии я не знаю.

L-ee-X 09.07.2015 16:59

Ответ: Как сделать стрельбу
 
Код:

EntityPickMode entity,pick_geometry[,obscurer]
Параметры
entity - указатель объекта

pick_geometry - тип геометрии, используемой для проверки:
0: не проверяется (по умолчанию)
1: Сфера (используется EntityRadius)
2: Полигоны
3: Куб (используется EntityBox)

obscurer (не обязательно) - True, чтобы установить, что объект перекрывает другие объекты во время выполнения EntityVisible.

Описание
Устанавливает режим проверки для объекта.

Дополнительный параметр obscurer используется с EntityVisible, чтобы создать условия, когда линия взгляда может как бы беспрепятственно пройти между двумя объектами. Это позволяет проверять некоторые объектам с использованием других pick-команд, но игнорировать их (они как бы 'прозрачные') при использовании EntityVisible. Это очень важное свойство EntityVisible.

Пожалуйста, учтите, что только типы Сфера и Куб будут работать со спрайтами Blitz3D. Оопределение полигона возможно только в объекте типа mesh( модель).

Смотрите также: EntityPick, LinePick, CameraPick, EntityPickMode.


L-ee-X 09.07.2015 17:06

Ответ: Как сделать стрельбу
 
Держи, уже почти готовый CoD :-D
PHP код:

Graphics3D 640,480,32,2
SetBuffer BackBuffer
()

Global 
fntArialr
fntArialr
=LoadFont("Arial",24,False,False,False)


Type Dude
    Field entity
,speed#
End Type

Type Dudet
    Field entity2
End Type

Const TYPE_PLAYER=1,Typelevel=2,enti=3,botar=4,enti2=5
Collisions TYPE_PLAYER
,TYPE_PLAYER,1,1

Healthb
=100
Healthig
=100

SchetB
=0
SchetP
=0
 campiv 
= CreatePivot() 
 
cam = CreateCamera(campiv)
CameraRange cam, 0.1,200000
EntityType campiv
,TYPE_PLAYER

lit
=CreateLight()

PositionEntity lit,0,20,0
RotateEntity lit
,10,90,0

gun1
=CreateCube()

ScaleEntity gun1,0.04,0.04,0.1
 PointEntity gun1
,campiv
EntityParent gun1
,campiv
EntityParent gun1
,cam 
PositionEntity gun1
,0,-0.15,+0.3
EntityColor gun1
,99,99,103

gunmu
=CreateCube(gun1)
ScaleEntity gunmu,0.1,0.7,0.7
 PointEntity gunmu
,campiv
EntityParent gunmu
,campiv
EntityParent gunmu
,cam 
PositionEntity gunmu
,0,-0.15,+0.40

bot
=CreateCube()
ScaleEntity bot,0.5,0.8,0.5
PositionEntity bot
,0,0,20
EntityColor bot
,0,160,252
EntityType bot
,botar

gol
=CreateSphere(8,bot)
ScaleEntity gol,0.7,0.5,0.7
PositionEntity gol
,0,1.5,0
EntityColor gol
,231,109,0
EntityType gol
,botar

pln
=CreatePlane()

EntityColor pln,205,88,249

PositionEntity pln
,0,-1,0


 cub1
=CreateCube()
EntityColor cub1,42,255,0
PositionEntity cub1
,-3,0,0
ScaleEntity cub1
,0.3,4,20
EntityType cub1
,Typelevel

 cub2
=CreateCube()
EntityColor cub2,42,255,0
PositionEntity cub2
,3,0,0
ScaleEntity cub2
,0.3,4,20
EntityType cub2
,Typelevel

 cub3
=CreateCube()
EntityColor cub3,255,0,0
PositionEntity cub3
,8,0,20
ScaleEntity cub3
,5,4,0.3
EntityType cub3
,Typelevel

 cub4
=CreateCube()
EntityColor cub4,255,0,0
PositionEntity cub4
,-8,0,20
ScaleEntity cub4
,5,4,0.3
EntityType cub4
,Typelevel

cub2
=CreateCube()
EntityColor cub2,255,0,0
PositionEntity cub2
,20,0,0
ScaleEntity cub2
,0.3,4,40
EntityType cub2
,Typelevel


cub2
=CreateCube()
EntityColor cub2,255,0,0
PositionEntity cub2
,-20,0,0
ScaleEntity cub2
,1,4,40
EntityType cub2
,Typelevel

pot
=CreateCube()
ScaleEntity pot,100,0.01,100

EntityColor pot
,255,255,255
PositionEntity pot
,0,4,0

Collisions TYPE_PLAYER
,typelevel,2,2
 
Collisions botar
,typelevel,2,2


Repeat

For d.Dude=Each Dude
        
        MoveEntity d
\entity,0,0,1

If EntityDistance(gun1,d\entity)>200
FreeEntity d
\entity
    Delete d
    
                    
EndIf


    
Next


If bull<MilliSecs()        

        
bul=bul+1                
            
If bul=25 Then bul=0  
        bull
=MilliSecs()+1
    
EndIf
    
    
    
For 
f.Dudet=Each Dudet
        
        MoveEntity f
\entity2,0,0,1

If EntityDistance(bot,f\entity2)>200
FreeEntity f
\entity2
    Delete f
    
                    
EndIf
            
    
Next


If bull2<MilliSecs()        

        
bul2=bul2+1                
            
If bul2=25 Then bul2=0  
        bull2
=MilliSecs()+1
    
EndIf

If 
EntityCollided (bot,Typelevel)

AlignToVector bot,EntityX(bot)-EntityX(campiv),0,EntityZ(bot)+EntityZ(campiv),0,0.6
EndIf 




TurnEntity bot,0,Sgn(DeltaYaw(bot,campiv))*2.3,0
MoveEntity bot
,0,0,0.05
 
If KeyDown(17)  Then 
TFormVector 0
,0,0.2,cam,campiv 
MoveEntity campiv
,TFormedX(),0,TFormedZ() 
EndIf 

If 
KeyDown(31)  Then
TFormVector 0
,0,-0.2,cam,campiv 
MoveEntity campiv
,TFormedX(),0,TFormedZ() 
EndIf 

If 
KeyDown(30)  Then 
MoveEntity  campiv
,-0.2,0,0
EndIf 

If 
KeyDown(32)  Then 
MoveEntity  campiv
,0.2,0,0
EndIf 

If 
KeyDown(57)
CameraZoom cam,2
Else
CameraZoom cam,1
EndIf 




If 
EntityInView(bot,cam)
For 
g=1 To 1
sphere2
=CreateSphere()
ScaleEntity sphere2,0.1,0.1,0.1
RotateEntity sphere2
,10,0,20
If bul2=0
f
.Dudet=New Dudet
    f
\entity2=CopyEntity( sphere2 )
    
EntityColor f\entity2,Rnd(255),Rnd(255),Rnd(255)
        
ResetEntity f\entity2
        
    PositionEntity f
\entity2,EntityX#(bot),EntityY#(bot)-0.3,EntityZ(bot) 
RotateEntity f\entity2,EntityPitch#(bot,1),EntityYaw#(bot),0 
EntityType f\entity2,enti2
Collisions enti2
,Typelevel,2,3
Collisions enti2
,TYPE_PLAYER,1,2
EndIf 
Next

If EntityCollided (campiv,enti2)
Healthig=Healthig-1
EndIf



FreeEntity sphere2

EndIf



TurnEntity campiv,0,-MouseXSpeed(),0 
If EntityCollided (campiv,tulevel) 
EndIf 


MoveMouse 320,240
 
If Healthb<1
PositionEntity campiv
,0,0,0
PositionEntity bot
,0,0,20
Healthb
=100
Healthig
=100
SchetB
=SchetB+1
EndIf

If 
Healthig<1
PositionEntity campiv
,0,0,0
PositionEntity bot
,0,0,20
Healthb
=100
Healthig
=100
SchetP
=SchetP+1
EndIf

 
UpdateWorld

 RenderWorld

 SetFont fntArialr
    Text 70
,27,"Health"
     
SetFont fntArialr
    Text 70
,67,"Health-Bot="+Healthb
    Text 70
,97,"Health-Player="+Healthig

    
    
    SetFont fntArialr
    Text 500
,27,"Account"
    
SetFont fntArialr
    Text 500
,67,"Bot="+SchetP

SetFont fntArialr
    Text 500
,97,"Player="+SchetB

 Flip

Until KeyHit
(1)


End 

Тут бот стреляет, посмотри код и сделай чтоб Player еще мог стрелять, как ты говоришь АЛГОРИТМ там присутствует... Написал бы да писать лень :)

Andvrok 09.07.2015 17:21

Ответ: Как сделать стрельбу
 
Ты что, он же не код просит, а АЛГОРИТМ.

L-ee-X 09.07.2015 17:29

Ответ: Как сделать стрельбу
 
Правильней наверное условие очередное ему надо написать которое при виде бота и нажатие лкм летела пуля и если столкнулась с объектом то отняла 10 HP. Вот и весь АЛГОРИТМ :))))

softcrasoft 09.07.2015 18:01

Ответ: Как сделать стрельбу
 
сам страуструп говорил, что чужой код - мрак в ночи, а свой код - своя жизнь.
Код я почти полностью не понял.
А по простому алгоритму так:
если нажат пробел, то
проиграть звук выстрела
если какой-то объект равен центру экрана уж не знаю как там это по тригонометрии, то
отнять 20 хп
если хп > 0, то
проиграть (3д) звук крика
end if
если хп <= 0, то
проиграть (3д) звук крика(умер)
end if
end if
то, какая функция возвращает объект в центре экрана, вопрос.

softcrasoft 09.07.2015 18:03

Ответ: Как сделать стрельбу
 
Ботов просто может быть несколько, и не будут же хп отниматься у одного, а стреляю с в другого.

softcrasoft 09.07.2015 18:14

Ответ: Как сделать стрельбу
 
Кстати, вот цитата моего одного знакомого, который занимался блицом:
В 2008 году, я узнал про блиц. тогда бгт специально для аудио игр небыл готов. Была некоторая русская инструкция. тогда я ужасно знал английский. и ради атаки и т.д, мне пришлось лезть на английские форумы, так как на русских нормального ответа не давали. Я с большим трудом разобрался с этим. Много было ошибок, небыло инструкции по решению определенных задач, да и думаю сейчас тож нет.
я б тебе помог, да уже не помню ничего. так как забросил всё в том же 2008 году. так как ответ то я получил, но не полный.
Конец цитаты.
Ребят вот так же сдесь. у вас, в первом сообщении простое условие, а вы сказать функцию которая определяет в центре ли объект, и какой. можно даже без какой, ладно я через фор сделаю проверку сказать не можете.
А представлте вы нуб в этом языке и ничего не знаете? скажете, полезу в справку. ну а если английский не знаешь?

softcrasoft 09.07.2015 18:19

Ответ: Как сделать стрельбу
 
Возвращает True, если объекты src_entity и dest_entity находятся в зоне видимости друг друга ( "видят" друг друга).
то есть как я понимаю, условие будет таким?
if entityVisible (player,enemy) == true then
крики
end if
да?

Andvrok 09.07.2015 18:24

Ответ: Как сделать стрельбу
 
Держи, пока я добрый.

PHP код:

если(КнопкаНажата(Кнопка.Пробел))
{
    
Аудио.Проиграть(звуквыстрела);
    
Луч луч = Камера.Основная.ТочкаВЛуч(Ввод.ПозицияКурсора);
    
ЦельЛуча цельЛуча;
    
если(Физика.ПуститьЛуч(луч, вне цельЛуча, 100))
    {    
        
переменная цель = цельЛуча.Коллайдер.Объект.ПолучитьКомпонент<Цель>();
        
цель.ОтнятьХП(10);
        
если(цель.ХП > 0)
        {
            
Аудио.Проиграть(крик);
        }
        
иначе
        
{
            
Аудио.Проиграть(смерть);
        }
    }
} 


Andvrok 09.07.2015 18:31

Ответ: Как сделать стрельбу
 
Цитата:

Сообщение от softcrasoft (Сообщение 297488)
ну а если английский не знаешь?

Тогда тебе в геймдеве делать нечего.

L-ee-X 09.07.2015 18:35

Ответ: Как сделать стрельбу
 
Какой нафиг это алгоритм? Это простое условие которое написать легче простого. И нет такой команды если объект в центре экрана. CameraPick или как там она есть. Тебе в начале написали какими командами делать. Ты бы хоть не много тот код прочитал что я скинул и посмотрел как это делается.

softcrasoft 09.07.2015 18:36

Ответ: Как сделать стрельбу
 
это пример c++ а не блица ггг

softcrasoft 09.07.2015 18:37

Ответ: Как сделать стрельбу
 
вы написали код атаки куба. а меня больше интересует условие с моей атакой. так понятней будет.

L-ee-X 09.07.2015 18:38

Ответ: Как сделать стрельбу
 
Ну так посмотри как куб то там атакует и сделай чтоб так же плеер атаковал.

softcrasoft 09.07.2015 18:42

Ответ: Как сделать стрельбу
 
там как я понял он поворачивается в сторону игрока а условия там нет.

L-ee-X 09.07.2015 18:50

Ответ: Как сделать стрельбу
 
Да причем тут поворачивается? Посмотри говорю как выстрел делается...

softcrasoft 09.07.2015 18:53

Ответ: Как сделать стрельбу
 
fntArialr=LoadFont("Arial",24,False,False,False) чт оэто?

softcrasoft 09.07.2015 18:57

Ответ: Как сделать стрельбу
 
я овобще ж говорю в коде не разобрался. где там стрельба не разберешь

St_AnGer 09.07.2015 18:57

Ответ: Как сделать стрельбу
 
ппц. Разбиваем функцию на слова:
1) Load - загрузка;
2) Font - шрифт.
Из чего следует что это загрузка шрифта. Логично? Да. Без английского ты программировать не сможешь.

L-ee-X 09.07.2015 19:05

Ответ: Как сделать стрельбу
 
Цитата:

Сообщение от St_AnGer (Сообщение 297506)
Да. Без английского ты программировать не сможешь.

Говорили ему уже, бесполезно :-D

L-ee-X 09.07.2015 19:13

Ответ: Как сделать стрельбу
 
PHP код:

If EntityInView(bot,cam) ; если плеер в зоне видимости бота то
For g=1 To 1
sphere2
=CreateSphere()
ScaleEntity sphere2,0.1,0.1,0.1 
RotateEntity sphere2
,10,0,20
If bul2=0
f
.Dudet=New Dudet
    f
\entity2=CopyEntity( sphere2 )
    
EntityColor f\entity2,Rnd(255),Rnd(255),Rnd(255)
        
ResetEntity f\entity2
        
    PositionEntity f
\entity2,EntityX#(bot),EntityY#(bot)-0.3,EntityZ(bot) 
RotateEntity f\entity2,EntityPitch#(bot,1),EntityYaw#(bot),0 
EntityType f\entity2,enti2
Collisions enti2
,Typelevel,2,3
Collisions enti2
,TYPE_PLAYER,1,2
EndIf 
Next

If EntityCollided (campiv,enti2)
Healthig=Healthig-1
EndIf

FreeEntity sphere2
EndIf 


softcrasoft 09.07.2015 19:18

Ответ: Как сделать стрельбу
 
это если буедт игра графическая.
а мне нужно просто в условии нажатия пробел воспроизведение вузка, и сделать то надо условие если враг в центре во врея стрельбы, то отнимаем хп и воспроизводим звук

softcrasoft 09.07.2015 19:25

Ответ: Как сделать стрельбу
 
то есть никаких сфер и такого ненадо. просто проверка, и если верно, отнимаем хп и воспроизводим звук.

L-ee-X 09.07.2015 19:30

Ответ: Как сделать стрельбу
 
Ent = CameraPick(cam)
If KeyHit("Пробел")
If ent > 0
Воспроизводим звук и отнимаем HP
EndIf
EndIf

L-ee-X 09.07.2015 19:32

Ответ: Как сделать стрельбу
 
Я де тебе в теме про Type подобный пример кидал :-D с ботами и отниманием hp

softcrasoft 09.07.2015 19:33

Ответ: Как сделать стрельбу
 
не понял. а где проверка на объект? ггг. или cam типа объект врага? на и camerapick не видел. тока entitypick ну ща по ищу

softcrasoft 09.07.2015 19:34

Ответ: Как сделать стрельбу
 
та я про этот type ничего походу не пойму. причем тут тип и объект. не понятно.
хотя не знаю можно ли написать филд a=createcube.

L-ee-X 09.07.2015 19:37

Ответ: Как сделать стрельбу
 
Да ты походу вообще ни чего не понимаешь. Возьми тот пример что я тебе написал и добавь туда и звук и тд. И будет тебе счастье. В написание кода выше возможно где то ошибся, пишу на память. В любом случае тебе нужен будет Type как не крути.

L-ee-X 09.07.2015 19:41

Ответ: Как сделать стрельбу
 
Я за тебя уже целую игру можно так сказать написал :-D

softcrasoft 09.07.2015 19:55

Ответ: Как сделать стрельбу
 
извините, я не могу тип привротить или в это:
class blablabla
{
int hp;
int speed;
blablabla()
{
hp = 100;
speed = init(speed);
}
//функции
}
или в это
class blablabla:
def __init(self, hp, speed)
self.hp = hp
self.speed = speed
#Другие функции

softcrasoft 09.07.2015 19:59

Ответ: Как сделать стрельбу
 
ок ну допустим примерно я понял про типы. типа делаем его объект и с ним работаем. а если я делаю таких объектов 5
e1\enemy=New Enemy
e\obj = createCube()

и это в цикле фор. и что, выходит, что в e будет 100 объектов????????????????????

L-ee-X 09.07.2015 20:01

Ответ: Как сделать стрельбу
 
Читай однако справку

softcrasoft 09.07.2015 20:08

Ответ: Как сделать стрельбу
 
какую справку? там про типы по английски. перевод на форуме читал, нефига не понял.
гыгы не представляю даж. пишем bot\hp, и перем у всех потом hp смешно.

L-ee-X 09.07.2015 21:06

Ответ: Как сделать стрельбу
 
Ты хоть пример то смотрел мой про типы, хотя бы понял что к чему там и как отнимается хп у игрока? И при этом отнимается не у всех сразу а именно у того на который наведена мышка. Ты реально тупой. У меня просто слов нет уже ...

St_AnGer 09.07.2015 21:33

Ответ: Как сделать стрельбу
 
МужЫк, извини конечно, но ты наркоман.
Цитата:

Сообщение от softcrasoft (Сообщение 297520)
извините, я не могу тип привротить или в это:
class blablabla
{
int hp;
int speed;
blablabla()
{
hp = 100;
speed = init(speed);
}
//функции
}

Код:

;Вот твой тип (аля класс в цпп)
Type blablabla
    Field hp%;
    Field speed%;
End Type

;Создание "объекта" (коли профи - знаешь что это такое)
Function CreateMotherFucker.blablabla(speed%)
    Local b.blablabla = New blablabla;
    b\hp = 100;
    b\speed = speed;

    Return b;
End Function

;Любая другая функция
Function DieMotherFuckerDie(b.blablabla)
    b\hp = -100500;
    b\speed = 0;
End Function

;Инициализируем переменную и создаём "объект" твоего типа
Local mzfk.blablabla = CreateMotherFucker(100500);

;Выполняем нашу другую функцию, принимающую в себя созданный ранее "объект" твоего типа
DieMotherFuckerDie(mzfk);


;Выведем на экран содержимое "объекта" после выполнения нашей функции
Print("HP: "+mzfk\hp);
Print("Speed: "+mzfk\speed);

;Ждём нажатия любой клавиши и выходим
WaitKey;
End;

"Объект" в кавычках потому, что это не тот объект из цпп или любого ООП языка. Это простая переменная указанного типа, в твоём случае типа blablabla. Но это нечто похожее на "объект", ты можешь получить доступ к его внутренностям (в твоём случае к hp и speed). Доходчивее уже некуда объяснять. Вкуривайся в это, или бросай сию затею.

softcrasoft 09.07.2015 22:19

Ответ: Как сделать стрельбу
 
до вас что не доперает, что я не не понимаю типы, а объекты?
enemy.mesh = createcube()
пишу в цикле фор и что, у меня в одном объекте выходит все 5 кубов.
l-ee-x, как я могу понять код, не понимая что за set, handle и old? если я не понимаю к чему идет обращение?
я уж не веноват что вы тут все английчани и юзаете англ документацию, а если я не такой то сразу придурок и тупой идиот?

St_AnGer 09.07.2015 22:24

Ответ: Как сделать стрельбу
 
Цитата:

Сообщение от softcrasoft (Сообщение 297540)
до вас что не доперает, что я не не понимаю типы, а объекты?
enemy.mesh = createcube()
пишу в цикле фор и что, у меня в одном объекте выходит все 5 кубов.

Нет, ты не понимаешь как раз саму суть типов. Циклом тебе надо создавать несколько enemy, а не несколько кубов в одном enemy.

То есть как то так:
Код:

For i = 1 To 5
    local e.enemy = new enemy;
    e\mesh = CreateCube();
Next

Вот что тебе нужно. Этот код создаст 5 "объектов" enemy с кубами. Ссылку на русскую справку тебе кинули в другом треде, изучай её срочно. Там про типы просто обязано быть написано. Изучишь типы - тогда уже можно будет поговорить об функциях object и handle.

softcrasoft 09.07.2015 22:30

Ответ: Как сделать стрельбу
 
если б писалось так:
e(i).enemy=new enemy
я бы понял. файл мне не кидали, только ссылку. я там и читал, но там про handle и про все то что тут было написано не слово.

softcrasoft 09.07.2015 22:31

Ответ: Как сделать стрельбу
 
а не то дргуая ссылка. не по ней учился. а тот хелп тока по командам.

softcrasoft 09.07.2015 22:33

Ответ: Как сделать стрельбу
 
я учился по:
http://www.blitz3d.hut2.ru/book.php
но там в типах опять же про это не слова.

St_AnGer 09.07.2015 22:35

Ответ: Как сделать стрельбу
 
Цитата:

Сообщение от softcrasoft (Сообщение 297542)
если б писалось так:
e(i).enemy=new enemy
я бы понял.

Ну так сделай массив, что мешает?
Код:

Dim e.enemy(5);

For i = 1 To 5
    e(i) = new enemy;
    e(i)\mesh = CreateCube();
Next

Я могу в синтаксисе ошибаться, бейсиками давно не пользуюсь, ибо НИНУЖНЫ. Но принцип должен быть понятен.

softcrasoft 09.07.2015 22:39

Ответ: Как сделать стрельбу
 
блин это я нуб не увилел.
Чтобы получить адрес текущей записи, служит команда:
Handle(указатель.имя_типа)

softcrasoft 09.07.2015 22:42

Ответ: Как сделать стрельбу
 
только про chr там не написано.

Gector 09.07.2015 23:04

Ответ: Как сделать стрельбу
 
Цитата:

Сообщение от St_AnGer (Сообщение 297534)
МужЫк, извини конечно, но ты наркоман.


Код:

;Вот твой тип (аля класс в цпп)
Type blablabla
    Field hp%;
    Field speed%;
End Type

;Создание "объекта" (коли профи - знаешь что это такое)
Function CreateMotherFucker.blablabla(speed%)
    Local b.blablabla = New blablabla;
    b\hp = 100;
    b\speed = speed;

    Return b;
End Function

;Любая другая функция
Function DieMotherFuckerDie(b.blablabla)
    b\hp = -100500;
    b\speed = 0;
End Function

;Инициализируем переменную и создаём "объект" твоего типа
Local mzfk.blablabla = CreateMotherFucker(100500);

;Выполняем нашу другую функцию, принимающую в себя созданный ранее "объект" твоего типа
DieMotherFuckerDie(mzfk);


;Выведем на экран содержимое "объекта" после выполнения нашей функции
Print("HP: "+mzfk\hp);
Print("Speed: "+mzfk\speed);

;Ждём нажатия любой клавиши и выходим
WaitKey;
End;

"Объект" в кавычках потому, что это не тот объект из цпп или любого ООП языка. Это простая переменная указанного типа, в твоём случае типа blablabla. Но это нечто похожее на "объект", ты можешь получить доступ к его внутренностям (в твоём случае к hp и speed). Доходчивее уже некуда объяснять. Вкуривайся в это, или бросай сию затею.

Dope слушаешь?:-D

L-ee-X 09.07.2015 23:04

Ответ: Как сделать стрельбу
 
Chr(anci код) у меня в коде эта команда добавляет символ кавычки к текущему тексту. Не заморачивайся над этой командой, можешь её исключить из кода. Изучай еще там же в справке ANSI коды

softcrasoft 09.07.2015 23:48

Ответ: Как сделать стрельбу
 
ок и последние 3 вещи:
1. что такое old.entity=Null
2. что такое set?
3. то для мыши. а если я поворачиваюсь стрелками?

St_AnGer 09.07.2015 23:54

Ответ: Как сделать стрельбу
 
Цитата:

Сообщение от softcrasoft (Сообщение 297560)
ок и последние 3 вещи:
1. что такое old.entity=Null
2. что такое set?
3. то для мыши. а если я поворачиваюсь стрелками?

Код тот не просматривал, потому могу ответить только на первое и то примерно, контекст не знаю. В entity явно лежит какой то энтити (получилась тафтология, в целом там скорее всего куб, сфера или моделька), а этим кодом производится обнуление переменной entity.

L-ee-X 10.07.2015 01:06

Ответ: Как сделать стрельбу
 
Да раз читать не умеет уже бы методом тыка смотрел че получится в том или ином случае. Может так дойдет...

softcrasoft 10.07.2015 07:20

Ответ: Как сделать стрельбу
 
я не умею писать код, не зная что он значит

L-ee-X 10.07.2015 12:29

Ответ: Как сделать стрельбу
 
Цитата:

Сообщение от softcrasoft (Сообщение 297567)
я не умею писать код, не зная что он значит

А ты его вообще писать умеешь? Не умеешь писать возьми да скопируй.

softcrasoft 10.07.2015 21:10

Ответ: Как сделать стрельбу
 
я хочу понимать каждую строчку. поэтому и спрашиваю.

Arton 11.07.2015 01:12

Ответ: Как сделать стрельбу
 
Цитата:

Сообщение от softcrasoft (Сообщение 297588)
я хочу понимать каждую строчку. поэтому и спрашиваю.

Э-э... справка по командам?

softcrasoft 11.07.2015 12:49

Ответ: Как сделать стрельбу
 
там тока типа таких
entityX
entityY
а set, указанное в том коде, навернка только в английской.

L-ee-X 11.07.2015 14:11

Ответ: Как сделать стрельбу
 
ДА ЕБАН*** ВРОТ set = FindEntity(ent) Это обыкновенная переменная в которую передаются данные функции FindEntity(ent).... Ты реально задрал, вот перед тем как спрашивать ты вообще смотрел где это set написана и с чем...
Почитай однако еще про Return
PHP код:

; RETURN Пример

; Выбор результата для значения возврата функции 'testme'

res = testme(Rnd(0,10));

; 
Программа эффективно заканчивается здесь.

; 
Подлинная функция
Function testme(test);

; 
Если случайный номер является = 0 
If test=0 Then
Print "Значение было 0"
Return False ; Функция завершается немедленно
Else
Print 
"Значение больше, чем 0"
Return True ; Функция прекращается немедленно
End 
If
Print 
"Эта строка никогда не будет напечатана!"
End Function 

В моем коде set то же самое, что в этом примере res

softcrasoft 11.07.2015 14:42

Ответ: Как сделать стрельбу
 
у вас было set.параметр.

softcrasoft 11.07.2015 14:46

Ответ: Как сделать стрельбу
 
кроч пойду поищу другой форум. тут походу одни нубы кроме arton сидят. нормально помочь с той задачей чтов 1 сообщении не можете. пояснить свой код тож не можете. и код не соответствующий. просил помочь как сделать стрельбу мою, игрока, так нет. они мне дают код стрельбы пративника, так плюс с созданием сфер и т.д прочей не нжной хрени. просто условие что враг по центру сказать не могут.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot