Тема: Скорость
Показать сообщение отдельно
Старый 18.06.2007, 13:02   #3
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Скорость

Function fnUpdateEnemy1()

For en1.enemy1 = Each enemy1

en1\speed#=.1

Local en1_ygol = Int (EntityYaw (en1\obj))

en1\retval = fnWhatVperedi(en1\obj,Int(EntityYaw (en1\obj)))

If (en1_ygol=0) Then 
 If (fnWhatVperedi(en1\obj,0)>0) Then en1\Understand_f=1 Else en1\Understand_f=0
 If (fnWhatVperedi(en1\obj,180)>0) Then en1\Understand_b=1 Else en1\Understand_b=0
 If (fnWhatVperedi(en1\obj,90)>0) Then en1\Understand_l=1 Else en1\Understand_l=0
 If (fnWhatVperedi(en1\obj,-90)>0) Then en1\Understand_r=1 Else en1\Understand_r=0
EndIf

If (Abs(en1_ygol)=180) Then 
 If (fnWhatVperedi(en1\obj,180)>0) Then en1\Understand_f=1 Else en1\Understand_f=0
 If (fnWhatVperedi(en1\obj,0)>0) Then en1\Understand_b=1 Else en1\Understand_b=0
 If (fnWhatVperedi(en1\obj,-90)>0) Then en1\Understand_l=1 Else en1\Understand_l=0
 If (fnWhatVperedi(en1\obj,90)>0) Then en1\Understand_r=1 Else en1\Understand_r=0
EndIf

If (en1_ygol=90) Then 
 If (fnWhatVperedi(en1\obj,90)>0) Then en1\Understand_f=1 Else en1\Understand_f=0
 If (fnWhatVperedi(en1\obj,-90)>0) Then en1\Understand_b=1 Else en1\Understand_b=0
 If (fnWhatVperedi(en1\obj,180)>0) Then en1\Understand_l=1 Else en1\Understand_l=0
 If (fnWhatVperedi(en1\obj,0)>0) Then en1\Understand_r=1 Else en1\Understand_r=0
EndIf

If (en1_ygol=-90) Then 
 If (fnWhatVperedi(en1\obj,-90)>0) Then en1\Understand_f=1 Else en1\Understand_f=0
 If (fnWhatVperedi(en1\obj,90)>0) Then en1\Understand_b=1 Else en1\Understand_b=0
 If (fnWhatVperedi(en1\obj,0)>0) Then en1\Understand_l=1 Else en1\Understand_l=0
 If (fnWhatVperedi(en1\obj,180)>0) Then en1\Understand_r=1 Else en1\Understand_r=0
EndIf


Local en1_x = Int((EntityX (en1\obj)/10))
Local en1_z = Int((EntityZ (en1\obj)/10))
          

If (playfield(en1\En1Arx,en1\En1Arz)=5) Then playfield(en1\En1Arx,en1\En1Arz) = 0

playfield(en1_x,en1_z) = 5

en1\En1Arx = en1_x
en1\En1Arz = en1_z

en1\timer#=en1\timer#+en1\speed#
;Необработанный кусок ИИ

 

If en1\timer#<=10 Then en1\speed#=.1 Else en1\speed#=0


If en1\timer#>=10 And  en1\understand_f=0 Then en1\timer#=0

If en1\timer#>=10 And  en1\understand_f=1

	If en1\understand_b=0

.f_dir
 F_dir=Rand(1,4)
Select F_dir

 	Case 1
	If en1\ugol=0 Then en1\ugol=180 Else Goto f_dir
	Case 2
	If en1\ugol=180 Then en1\ugol=0 Else Goto f_dir
 	Case 3
	If en1\ugol=90 Then en1\ugol=-90 Else Goto f_dir
	Case 4
	If en1\ugol=-90 Then en1\ugol=90 Else Goto f_dir
End Select
	
End If 

	If en1\understand_b=1 And en1\understand_f=1

.LR_dir
 LR_dir=Rand(1,6)
Select LR_dir

 	Case 1
	If en1\ugol=0 Then en1\ugol=90 Else Goto lr_dir
	Case 2
	If en1\ugol=0 Then en1\ugol=-90 Else Goto lr_dir
 	Case 3
	If en1\ugol=180 Then en1\ugol=-90 Else Goto lr_dir
	Case 4
	If en1\ugol=180 Then en1\ugol=90 Else Goto lr_dir
	Case 5
	If en1\ugol=90 Then en1\ugol=180 Else Goto lr_dir
	Case 6
	If en1\ugol=-90 Then en1\ugol=0 Else Goto lr_dir
End Select
	
End If 

If en1\understand_b=1 And en1\understand_f=1 And en1\understand_l=1 And en1\understand_r=1 Then en1\ugol=0


End If 

MoveEntity en1\obj,0,0,en1\speed#
RotateEntity en1\obj,0,en1\ugol,0


Next

End Function
Напомните мне пожалуйста команду, когда текст пишется над объектом (и следует за ним) вылетело из головы эта команда... - вспомнил. ненужно

Хотел бы этой командой показать (вывести) скорость для КАЖДОГО ои объекта в типе. Там нужны примудрости? как мне показать, что это объект номер такой-то и скорость его такая-то...?
(Offline)
 
Ответить с цитированием