Показать сообщение отдельно
Старый 19.12.2006, 17:17   #2
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Re: помогите!!!!

1)
WritePixel (WritePixelFast) и текстурный флаг 2 тебе помогут:
Текстуре ставишь флаг 2 - альфа(прозрачность)
Пишешь в нужную область текстуры пиксели с прозрачностью 0
WritePixel(X, Y, $00000000, TextureBuffer(Текстура))
Пример
Function AlphaRect(Tex, X, Y, Width, Height)
	LockBuffer(TextureBuffer(Tex))
	For Px = X To (X + Width)
		For Py = Y To (Y + Height)
			WritePixelFast(Px, Py, $00000000, TextureBuffer(Tex))
		Next
	Next
	UnlockBuffer(TextureBuffer(Tex))
End Function

Graphics3D(640, 480, 16, 2)
SetBuffer(BackBuffer())

BackGround = CreateCube()
ScaleEntity(BackGround, 100, 100, 1)
PositionEntity(BackGround, 0, 0, 20)

Cube = CreateCube()
PositionEntity(Cube, 0, 0, 10)

cam = CreateCamera()

Texture = CreateTexture(512, 512, 2)
EntityTexture(Cube, Texture)

Repeat
	TurnEntity(Cube, 0, 1, 1)

	If KeyDown(57) Then AlphaRect(Texture, Rand(462), Rand(462), 50, 50)

	RenderWorld()
	Flip()
Until KeyDown(1)
End
2)
открываешь текстурный буффер и рисуешь туда изображение
SetBuffer(TextureBuffer(Текстура))
DrawImage(Рисунок, X, Y)
SetBuffer(BackBuffer())
(Offline)
 
Ответить с цитированием