Показать сообщение отдельно
Старый 03.09.2007, 22:50   #11
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Взрыв бомбочки

Вообщем не получается. Вот функция моя. Не знаю почему не получается. Пытался воспроизвести идею Imper'а

bomb.bombs = First bombs
If bomb<>Null Then fnUpdateBomb(X,Z) - в цикле
-------------------------------------
 
Function fnUpdateBomb(x,z)
For bomb.bombs = Each bombs
Local Rad=16
Local ExplWay
ExplWay=0
If bomb<>Null Then 
bomb\lifetime = bomb\lifetime+1
bomb\ArX = Int(((EntityX (bomb\obj)+5)/10))
bomb\ArZ= Int(((EntityZ (bomb\obj)+5)/10))
 
x=bomb\ArX
z=bomb\Arz
If (bomb\lifetime=60 ) 
 
 
;-> äâèãàåìñÿ
For i=bomb\ArX+1 To 16
If ExplWay=Rad Exit;ðàäèóñ ïðîéäåí
If playfield(X,Z)<>0 And Playfield(X,Z)<>1
playfield(X,Z)=0;âçðûâàåì òî÷êó
Exit;âîëíà èñ÷åðïàëà ñåáÿ
EndIf
ExplWay=ExplWay+1;óâåëè÷èâàåì ïðîéäåííîå
Next
ExplWay=0
;<-äâèãàåìÿ
For i=bomb\ArX-1 To 1 Step -1
If ExplWay=Rad Exit
If playfield(X,Z)<>0 And playfield(X,Z)<>1
playfield(X,Z)=0
Exit
EndIf
ExplWay=ExplWay+1
Next
ExplWay=0
 
;\/ äâèãàåìñÿ
For i=bomb\ArZ+1 To 16
If ExplWay=Rad Exit
If playfield(X,Z)<>0 And playfield(X,Z)<>1
playfield(X,Z)=0
Exit
EndIf
ExplWay=ExplWay+1
Next
ExplWay=0
;/\ äâèãàåìñÿ
For i=bomb\ArZ-1 To 1 Step -1
If ExplWay=Rad Exit
If playfield(X,Z)<>0 And playfield(X,Z)<>1
playfield(X,Z)=0
Exit
EndIf
ExplWay=ExplWay+1
Next 
Next 
end function
Может я что-то с массивом напутал? Вообще у меня в начале массив:

Const ArrayPlayfieldX=16
Const ArrayPlayfieldZ=16

Dim Playfield(ArrayPlayfieldX,ArrayPlayfieldZ)

Сейчас почему-то вообще...ничего не работает, но и ошибки никакой нет.
(Offline)
 
Ответить с цитированием