Warsztat.GD

Programowanie => Językoznawstwo => C# => Wątek zaczęty przez: bladus w Listopad 22, 2006, 19:57:39

Tytuł: szybkie CLONE w C#
Wiadomość wysłana przez: bladus w Listopad 22, 2006, 19:57:39
witam
mam takie pytanie w związku z C#.
Mam plik z grafikami ikonek do gry o wymiarze powiedzmy 20 na 20 ikonek (kazda to 64 na 64 pixele). Pobieram z tego pliku powiedzmy ikonke miecza o polozeniu 2,6. Korzystam z funckji CLONE calej bitmapy ktora jest cholernie wolna... czy mozna jakos wyciągnąc z tego pliku pojedyncze ikonki szybsza metoda ?? VS 2005 .Net 2.0

pozdrawiam
Tytuł: Odp: szybkie CLONE w C#
Wiadomość wysłana przez: counterClockWise w Listopad 24, 2006, 15:07:40
Nie do końca rozumiem pytanie. Z resztą Clone robi kopię całego obiektu, a Ty chyba chcesz szybko wyciąć fragment z bitmapy, tak? Czy coś nie kapuję?

Możesz nie tworzyć dodatkowych bitmap, tylko przechowywac tę jedną i rysować za pomocą DrawImage <- podając odpowiedni lewy górny róg i width/height. Ciężko mi wpaść na szybszy pomysł używając tylko API .NET-owego.
Tytuł: Odp: szybkie CLONE w C#
Wiadomość wysłana przez: KrystianD w Listopad 24, 2006, 15:16:05
Cytuj
Nie do końca rozumiem pytanie. Z resztą Clone robi kopię całego obiektu, a Ty chyba chcesz szybko wyciąć fragment z bitmapy, tak? Czy coś nie kapuję?
Do Clone'a też można podać współżędne kopiowanego prostokąta
public Bitmap Clone (Rectangle rect, PixelFormat format);
Tytuł: Odp: szybkie CLONE w C#
Wiadomość wysłana przez: counterClockWise w Listopad 24, 2006, 17:14:15
No tak - zapomniałem, że Bitmapa ma nadpisany Clone który dziedziczy z Object. No ale chyba nie ma sensu tworzyć nowych obiektów, jeżeli zależy Ci na szybkości. Draw Image jest dosyć szybkie.

A jeżeli chcesz używać Clone to użyj tylko raz przy wczytywaniu gry - przecież jak coś wykonuje się tylko raz a nie dynamicznie czy wręcz potencjalnie w każdej klatce to nie musi być super wydajne :)