Тема: Vivo
Показать сообщение отдельно
Старый 05.02.2012, 17:48   #103
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Vivo

Вот как я сделал мозг крабику, вроде не жалуется:
Function UpdateCrab()
For cr.crab=Each crab
 If MilliSecs()-tcr>200 Then
 tcr=MilliSecs()
 chn=Rnd(50)
 If chn=1 Then
 crdeltax#=1
 crdeltay#=0
 cr\image=crab90
 EndIf
 If chn=2 Then
 crdeltax#=-1
 crdeltay#=0
 cr\image=crab270
 EndIf
 If chn=3 Then
 crdeltax#=0
 crdeltay#=1
 cr\image=crab180
 EndIf
 If chn=4 Then
 crdeltax#=0
 crdeltay#=-1
 cr\image=crab
 EndIf
 If chn>4 Then
 crdeltax#=0
 crdeltay#=0
 EndIf
 EndIf
 crpx=cr\x+crdeltax*crspeed
 crpy=cr\y+crdeltay*crspeed
 If Not CollideStonesCrab(crpx,crpy) Then
 cr\x=crpx
 cr\y=crpy
 EndIf
 
 If ImagesCollide(gert,x,y,frames,crab,cr\x,cr\y,0) Then
 php=php-10
 EndIf
 
 DrawImage cr\image,cr\x,cr\y
Next
End Function

Function CollideStonesCrab(crpx,crpy)
	For w1.swall=Each swall
		If ImagesCollide(crab,crpx,crpy,0,w1\image,w1\x,w1\y, 0)
			Return True
		EndIf
	Next
	For m.Main=Each Main
		If ImagesCollide(crab,crpx,crpy,0,m\stone,m\x, m\y, 0)
			Return True
		EndIf
	Next
	For tree.Tree=Each Tree
		If ImagesCollide(crab,crpx,crpy,0,tree\tree1,tree\x,tree\y, 0)
			Return True
		EndIf
	Next

	Return False
	
End Function
P.S. Да, знаю что название функции CollideStones хотя там не только камни, но меня как-то это не волнует
(Offline)
 
Ответить с цитированием