[PASCAL] Problem z grafika ;/

Odpowiedz Nowy wątek
kogucik99
2007-04-21 17:51
kogucik99
0

czesc, mam problem pisze gre i potrzebuje jakiegos polecenia aby sprawdzic czy w danym punkcie jest pixel bialy. powiedzmy ze mam pole 20x20, i np w polu 15,6 jest pixel na bialo i ja bym chcial zrobic tak, ze
[quote]if pixel=bialy then cos_tam[/quote]
tylko jak mozna sprawdzic czy pixel jest na bialo?

Pozostało 580 znaków

2007-04-21 18:36

Rejestracja: 13 lat temu

Ostatnio: 6 lat temu

0

Nie wiem w jakim trybie piszesz. W BGI używa się funkcji

GetPixel(X, Y :Integer) :Word;

Zwraca ona kolor piksela o wsp. X, Y. Teraz wystarczy porównać ze stałą koloru i masz. Dla grafiki 13h użyj tej funkcji:

FUNCTION GetPixel(Buf :Pointer; X, Y :Word) :Byte; ASSEMBLER;
ASM
  LES  DI, Buf
  MOV  AX, [Y]
  MOV  DI, AX
  SHL  AX, 8
  SHL  DI, 6
  ADD  DI, AX
  ADD  DI, [X]
  MOV  AL, BYTE PTR ES:[DI]
END; { GetPixel }

Gdzie Buf to bufor z którego pobierasz. Jeżeli od razu z ekranu to podstaw

GetPixel(Ptr($A000, 0000), X, Y)

<span style="color: blue">"Kolarstwo to jedna z najtrudniejszych dyscyplin sportu. Nawet najgorszy kolarz jest wciąż wybitnym sportowcem."
s.p. Marco Pantani
</span>

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0