Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 2D-программирование

2D-программирование Вопросы, касающиеся двумерного программирования

Ответ
 
Опции темы
Старый 17.05.2009, 21:14   #1
rr333
Нуждающийся
 
Регистрация: 07.02.2009
Сообщений: 92
Написано 16 полезных сообщений
(для 38 пользователей)
Заливка

Как реализовать в blitz заливку, как в paint'е? Т.е. закрасить произвольную область, ограниченную пикселями, или хотяб фигуру из произвольных линий.
(Offline)
 
Ответить с цитированием
Старый 17.05.2009, 21:33   #2
Baisangur
ПроЭктировщик
 
Аватар для Baisangur
 
Регистрация: 10.03.2009
Адрес: Казахстан->Кустанай
Сообщений: 147
Написано 12 полезных сообщений
(для 23 пользователей)
Ответ: Заливка

Ты имеешь ввиду 2D объект?
; Flip/Backbuffer()/Rect Example 

; Set Graphics Mode 
Graphics 640,480 

; Go double buffering 
SetBuffer BackBuffer() 

; Setup initial locations for the box 
box_x = -20 ; negative so it will start OFF screen 
box_y = 100 

While Not KeyHit(1) 
Cls ; Always clear screen first 
Rect box_x,box_y,20,20,1 ; Draw the box in the current x,y location 
Flip ; Flip it into view 
box_x = box_x + 1 ; Move the box over one pixel 
If box_x = 640 Then box_x=-20 ; If it leaves the Right edge, reset its x location 
Wend
Выдрал из хелпа по блицу(ваще очень хорошая вешь этот хелп).
Так вот примерно так оно и выглядит.
(Offline)
 
Ответить с цитированием
Старый 18.05.2009, 00:40   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Заливка

рекурсия
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 18.05.2009, 06:25   #4
rr333
Нуждающийся
 
Регистрация: 07.02.2009
Сообщений: 92
Написано 16 полезных сообщений
(для 38 пользователей)
Ответ: Заливка

Рисовать закрашенные прямоугольники я умею, ето не то. Есть область, ограниченная пикселями, теперь как её закрасить?
(Offline)
 
Ответить с цитированием
Старый 19.05.2009, 16:24   #5
rr333
Нуждающийся
 
Регистрация: 07.02.2009
Сообщений: 92
Написано 16 полезных сообщений
(для 38 пользователей)
Ответ: Заливка

Неужели никто не делал заливку на blitz? Сам пробовал делать, но оставался след до края на одну из сторон, смотря откуда начинал заливать.
(Offline)
 
Ответить с цитированием
Старый 19.05.2009, 21:23   #6
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Заливка

Сообщение от impersonalis Посмотреть сообщение
рекурсия
сам правь мой говнокод (как минимум надо ввести коррецию границы буффера)
Function ZapiliBufferCvetom(buffer%,px%,py%,r%,g%,b%)
	Local pixcolor%=ReadPixel(px,py,buffer)
	Local npixcolor%=256^3+(256^2)*r+256*g+b
	LockBuffer(buffer)
	RecZap(buffer,px,py,pixcolor,npixcolor)
	UnlockBuffer(buffer)
End Function

Function RecZap(buffer,px,py,col,newcol%)
	If ReadPixelFast(px,py,buffer)<>col Return
	WritePixelFast(px,py,newcol,buffer)
	RecZap(buffer,px-1,py,col,newcol)
	RecZap(buffer,px+1,py,col,newcol)
	RecZap(buffer,px,py-1,col,newcol)
	RecZap(buffer,px,py+1,col,newcol)
End Function

Graphics 800,600,32,2
SetBuffer BackBuffer()

Color 255,255,0
Local GeomObjType%
Local XO%,YO%,WO%,HO%
For i=1 To 10
	GeomObjType=Rand(1,2)
	XO=Rand(0,300)
	XO=Rand(0,300)
	WO=Rand(0,300)
	HO=Rand(0,300)
	Select GeomObjType
		Case 1
			Rect XO,YO,WO,HO,0
		Case 2
			Oval XO,YO,WO,HO,0
	End Select
Next

Color 255,0,0
While Not KeyHit(1)
	If MouseHit(1)
		AppTitle "wait.."
		ZapiliBufferCvetom(BackBuffer(),MouseX(),MouseY(),ColorRed(),ColorGreen(),ColorBlue())
		Color Rand(0,255),Rand(0,255),Rand(0,255)
	EndIf
	AppTitle ""
	Flip
Wend
End
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
rr333 (19.05.2009)
Старый 19.05.2009, 21:54   #7
rr333
Нуждающийся
 
Регистрация: 07.02.2009
Сообщений: 92
Написано 16 полезных сообщений
(для 38 пользователей)
Ответ: Заливка

Спасиб, то что нужно. Да и алгоритм побыстрее моего будет (я все пиксели обходил 2 циклами).
(Offline)
 
Ответить с цитированием
Старый 20.05.2009, 02:08   #8
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Заливка

XO=Rand(0,300)
XO=Rand(0,300)
XO=Rand(0,300)
YO=Rand(0,300)
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заливка фигуры цветом ??? bms2008 Основной форум 1 15.12.2008 17:09


Часовой пояс GMT +4, время: 20:09.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com