Показать сообщение отдельно
Старый 07.10.2013, 21:51   #1
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
некоторые изометрические демки

Зажать ЛМ кнопку мыши и поводить в прямоугольнике ... немного подождать секунд эдак 2-5 ... пятна постепенно начнут исчезать


maxX = 300 : maxY= 150

Dim c#(maxX ,maxY)
Graphics 800,600,32,2 
SetBuffer BackBuffer() 


c(90,10)= 20


While Not KeyHit(1) 
Cls 
mx = MouseX() : my=MouseY() : z= Abs(MouseZ () )+12

If KeyHit(2) Then q= Not q
If MouseDown(1) Then md=1 Else md=0


	For y= 1 To maxY
		For x=1 To maxX 
			If x<maxX And x>0 And y<maxY And y>0
				If Int( ((mx - x)^2 + (my - y)^2)^.5 )<= z Then 
				If md=1
				If q=0 Then c(x,y)= c(x,y)+1
				If q=1 Then c(x,y)= c(x,y)-2
				EndIf 
				If c(x,y)> 255 Then c(x,y)=255
				Color 222,222,222
				Plot x,y
				EndIf 
			EndIf 
		Next 
	Next 

Color 222,222,222
Rect 0,0,maxX ,maxY,0
;If md=0
	For y= 1 To maxY
		For x=1 To maxX 
			co = 10+c(x,y)
			If co>255 Then co =255
			Color co,co,co
			If co<=0 Then co =0	:Color 0,0,255			
			;Plot 200+x-y,200+y-c(x,y)
			;Line 200+x-y,200+y-c(x,y)  , 200+x-y,200+y+4-c(x,y)
			;For z=1 To 20
;			If Int( ((mx - x)^2 + (my - y)^2)^.5 )<= z And md=1
			If x<maxX And x>0 And y<maxY And y>0
			If c(x,y) > c(x-1,y-1) Then c(x,y)=( c(x,y)+ c(x-1,y-1))/2 :Line 200+x-y,200+y-c(x,y)  , 200+x-y,200+y-c(x-1,y-1)
			If c(x,y) > c(x-1,y+1) Then c(x,y)=( c(x,y)+ c(x-1,y+1))/2 : Line 200+x-y,200+y-c(x,y)  , 200+x-y,200+y-c(x-1,y+1) 
			If c(x,y) > c(x+1,y-1) Then c(x,y)=( c(x,y)+c(x+1,y-1))/2 :Line 200+x-y,200+y-c(x,y)  , 200+x-y,200+y- c(x+1,y-1)
			If c(x,y) > c(x+1,y+1) Then c(x,y)=( c(x,y) + c(x+1,y+1))/2 :Line 200+x-y,200+y-c(x,y)  , 200+x-y,200+y-c(x+1,y+1)
			
			If c(x,y) > c(x,y-1) Then c(x,y)=( c(x,y)+c(x,y-1))/2 :Line 200+x-y,200+y-c(x,y)  , 200+x-y,200+y-c(x,y-1)
			If c(x,y) > c(x,y+1) Then c(x,y)=( c(x,y)+ c(x,y+1))/2 :Line 200+x-y,200+y-c(x,y)  , 200+x-y,200+y-c(x,y+1)
			If c(x,y) > c(x-1,y) Then c(x,y)=( c(x,y)+ c(x-1,y))/2 :Line 200+x-y,200+y-c(x,y)  , 200+x-y,200+y-c(x-1,y)
			If c(x,y) > c(x+1,y) Then c(x,y)=( c(x,y)+c(x+1,y))/2 : Line 200+x-y,200+y-c(x,y)  , 200+x-y,200+y- c(x+1,y)
;			EndIf 
			EndIf 
		Next 
	Next 
Color 222,222,222
Text 300,20,"Q "+q

Flip 
Wend 
End
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием