|
13.09.2007, 21:45
|
#1
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
Функция стрельбы
Написал вот код стрельбы, но он почему-то не запускается, помогите, в чем причина.
Код:
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
|
|
(Offline)
|
|
13.09.2007, 21:49
|
#2
|
|
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
должно вроде работать
|
|
|
13.09.2007, 22:03
|
#3
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
Re: Функция стрельбы
Большое спасибо Сейчас проверю!
|
(Offline)
|
|
13.09.2007, 22:25
|
#4
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
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(20 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
|
|
(Offline)
|
|
13.09.2007, 22:56
|
#5
|
|
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
смотри, я выделил изменения
|
|
|
14.09.2007, 10:09
|
#6
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
Re: Функция стрельбы
Спасибо конечно, но чет не запускается. Пишит ошибку
End Functions without Functions
|
. А ты у себя проверял, может че в функции неправильно???
|
(Offline)
|
|
14.09.2007, 15:25
|
#7
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: Функция стрельбы
Пули нужно делать в типах(больше возможностей- менше гемору )!!!(иначе некак(небудеш же создавать все пули в игре ручками))
ЗЫ?
Чего мой пост снесли-то?
|
(Offline)
|
|
14.09.2007, 16:43
|
#8
|
|
Re: Функция стрельбы
vlad
дай человеку хотя бы с этим разобратся
|
|
|
14.09.2007, 22:14
|
#9
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: Функция стрельбы
Сообщение от jimon
vlad
дай человеку хотя бы с этим разобратся
|
Просто вдруг человек вообще невкурсе что есть такое, и будет он сидеть и прописывает pyla_2001....
|
(Offline)
|
|
14.09.2007, 23:42
|
#10
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
Re: Функция стрельбы
Всем большущее спасибо! Накачал сегодня 30 метров учебников, посвященных этой теме, на досуге буду разбираться. Уверен, что прочитав их все до меня дойдет Ну, я думаю тему можно считать закрытой!
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:35.
|