forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Функция стрельбы (http://forum.boolean.name/showthread.php?t=4442)

AndruXa 13.09.2007 21:45

Функция стрельбы
 
Написал вот код стрельбы, но он почему-то не запускается, помогите, в чем причина.:SOS:
Код:
Цитата:

If MouseDown(1) Then
pulya=CreateSphere()
Function updatepulya()
MoveEntity pulya,0,0,10
If EntityDistance(pulya,player)>100
FreeEntity pulya
Delete pulya
EndIf
Next
End Function

jimon 13.09.2007 21:49

Re: Функция стрельбы
 
Код:

global pulya

Function createpulya()
pulya=CreateSphere()
End Function

Function updatepulya()
if pulya = null then return
MoveEntity pulya,0,0,10
If EntityDistance(pulya,player) > 100 then
FreeEntity pulya
pulya = null
End Function

while not keyhit(1)
....
If MouseDown(1) Then createpulya()
updatepulya()
....
wend

должно вроде работать

AndruXa 13.09.2007 22:03

Re: Функция стрельбы
 
Большое спасибо:) Сейчас проверю!

AndruXa 13.09.2007 22:25

Re: Функция стрельбы
 
To jimon: А как мне вставить это в мой код. Ато у меня с объединением кодов проблемы. Никто толком не может объяснить как это делать. Я Вижу 2 стиля: 1)с Repeat(в котором я пишу)
2)с Функциями
А вот как их объединить не представляю:@
Код:
Цитата:

Graphics3D 1024,768,32,1
SetBuffer BackBuffer()

Const typeplayer=1,Typepln=2

Global pulya

lit=CreateLight()

player=CreatePivot()
PositionEntity player,0,10,0
EntityRadius player,.9
EntityType player,Typeplayer

camera=CreateCamera( player )
TranslateEntity camera,0,0.9,0
CameraRange camera,.1,200


pln=CreatePlane()
tex=LoadTexture("111.jpg")
ScaleTexture tex,5,5
EntityTexture pln,tex
EntityType pln,Typepln



Collisions typeplayer,Typepln,2,2

Repeat

;Параметр ускорения
sp#=.05
shoe_size#=7.0
head_bang_X#=0.1
head_bang_Y#=0.1

;Система навигации мыши
mxs#=MouseXSpeed()/4.0
mys#=MouseYSpeed()/4.0
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
camxa#=camxa-mxs Mod 360
camya#=camya+mys
If camya<-90 Then camya=-90
If camya>90 Then camya=90
RotateEntity player,0,camxa,0
RotateEntity camera,camya,0,0
;Перемещение игрока
MoveEntity player,0,-.05,0
walking=0
If KeyDown(203) Then: MoveEntity player,-sp,0,0 : walking=1: EndIf
If KeyDown(205) Then: MoveEntity player, sp,0,0 : walking=1: EndIf
If KeyDown(200) Then: MoveEntity player,0,0, sp : walking=1: EndIf
If KeyDown(208) Then: MoveEntity player,0,0,-sp : walking=1: EndIf

If walking=1
a1#=(a1#+shoe_size) Mod 360
Else
EndIf
PositionEntity camera,Cos(a1#)*head_bang_X#,Sin(90+a1#*2)*head_ba ng_Y#,0,0



UpdateWorld

RenderWorld
Flip

Until KeyHit(1)

End

jimon 13.09.2007 22:56

Re: Функция стрельбы
 
Код:

Graphics3D 1024,768,32,1
SetBuffer BackBuffer()

Const typeplayer=1,Typepln=2

Global pulya

lit=CreateLight()

;--- надо player тогда как глобальную обьявить
Global player=CreatePivot()
PositionEntity player,0,10,0
EntityRadius player,.9
EntityType player,Typeplayer

camera=CreateCamera( player )
TranslateEntity camera,0,0.9,0
CameraRange camera,.1,200


pln=CreatePlane()
tex=LoadTexture("111.jpg")
ScaleTexture tex,5,5
EntityTexture pln,tex
EntityType pln,Typepln

;-------------
Function createpulya()
pulya=CreateSphere()
End Function

Function updatepulya()
if pulya = null then return
MoveEntity pulya,0,0,10
If EntityDistance(pulya,player) > 100 then
FreeEntity pulya
pulya = null
End Function
;-------------



Collisions typeplayer,Typepln,2,2

Repeat

;Параметр ускорения
sp#=.05
shoe_size#=7.0
head_bang_X#=0.1
head_bang_Y#=0.1

;Система навигации мыши
mxs#=MouseXSpeed()/4.0
mys#=MouseYSpeed()/4.0
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
camxa#=camxa-mxs Mod 360
camya#=camya+mys
If camya<-90 Then camya=-90
If camya>90 Then camya=90
RotateEntity player,0,camxa,0
RotateEntity camera,camya,0,0
;Перемещение игрока
MoveEntity player,0,-.05,0
walking=0
If KeyDown(203) Then: MoveEntity player,-sp,0,0 : walking=1: EndIf
If KeyDown(205) Then: MoveEntity player, sp,0,0 : walking=1: EndIf
If KeyDown(200) Then: MoveEntity player,0,0, sp : walking=1: EndIf
If KeyDown(208) Then: MoveEntity player,0,0,-sp : walking=1: EndIf

If walking=1
a1#=(a1#+shoe_size) Mod 360
Else
EndIf
PositionEntity camera,Cos(a1#)*head_bang_X#,Sin(90+a1#*2)*head_ba ng_Y#,0,0

;-------------
If MouseDown(1) Then createpulya()
updatepulya()
;-------------

UpdateWorld

RenderWorld
Flip

Until KeyHit(1)

End

смотри, я выделил изменения

AndruXa 14.09.2007 10:09

Re: Функция стрельбы
 
Спасибо конечно, но чет не запускается. Пишит ошибку
Цитата:

End Functions without Functions
. А ты у себя проверял, может че в функции неправильно???

ЛысыЙ_Чук-Иванчук 14.09.2007 15:25

Re: Функция стрельбы
 
Пули нужно делать в типах(больше возможностей- менше гемору;))!!!(иначе некак(небудеш же создавать все пули в игре ручками))
ЗЫ?
Чего мой пост снесли-то?

jimon 14.09.2007 16:43

Re: Функция стрельбы
 
vlad
дай человеку хотя бы с этим разобратся

ЛысыЙ_Чук-Иванчук 14.09.2007 22:14

Re: Функция стрельбы
 
Цитата:

Сообщение от jimon
vlad
дай человеку хотя бы с этим разобратся

Просто вдруг человек вообще невкурсе что есть такое, и будет он сидеть и прописывает pyla_2001....:)

AndruXa 14.09.2007 23:42

Re: Функция стрельбы
 
Всем большущее спасибо!:) Накачал сегодня 30 метров учебников, посвященных этой теме, на досуге буду разбираться. Уверен, что прочитав их все до меня дойдет:) Ну, я думаю тему можно считать закрытой!


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

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