Inventarobjekte maskiert ins Inventarbild kopieren

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

GERMAX

Betreff: Inventarobjekte maskiert ins Inventarbild kopieren

BeitragDo, Nov 25, 2010 23:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Momentan arbeite ich daran, kleine icons in mein Inventar zu kopieren. Dabei benutze ich folgendes:


If showinv% =True Then
CopyRect 0,0,48,48,100,67,ImageBuffer(mana),ImageBuffer(inventar)
CopyRect 0,0,48,48,147,67,ImageBuffer(hp),ImageBuffer(inventar)
DrawBlock inventar,192,144
End If

Das funktioniert so auch (zum Testen), aber um meine icons herum will ich die Farbe ausstanzen, weil das Inventar einen pergamentähnl. Hintergrund hat. Geht sowas überhaupt?

Oder gibt es noch eine grundsätzl. andere Methode, um das Inventar aufzubereiten und anzuzeigen?
Erfolglos begonnene BB-Projekte:TRON/CONVOY/MYSTIC

ToeB

BeitragDo, Nov 25, 2010 23:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja !

Am besten speicherst du die Inventar-Daten in ein 2D-Array, und dann malst du die Bilder einfach in einer Forschleife !

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Xeres

Moderator

BeitragDo, Nov 25, 2010 23:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum nimmst du überhaupt Imagebuffer? Du kannst einfach das Bild einer Variablen zuweisen (und Maskimage benutzen).
Das raus Kopieren müssten du überhaupt nur bei Änderungen machen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Dottakopf

BeitragFr, Nov 26, 2010 8:45
Antworten mit Zitat
Benutzer-Profile anzeigen
direkt in/auf den buffer zu malen wird wohl wesentlich schneller sein, wenn mans richtig macht, denk ich Confused
Allerdings sollten Grafiken mit maskimage ausreichen, außer du hast vor 5000 icons mit lustigen blinkeffekten zu zeichnen und einer sich aktuellisierenden Tilemap im Hintergrund zu arbeiten. Surprised

Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!
 

GERMAX

BeitragFr, Nov 26, 2010 23:05
Antworten mit Zitat
Benutzer-Profile anzeigen
CopyRect 48,0,48,48,0,0,ImageBuffer(mana),ImageBuffer(iobjects) ;icons
CopyRect 81,0,9,9,38,35,ImageBuffer(invzs),ImageBuffer(iobjects) ;minifont

If showinv% Then DrawBlock inventar,192,144:DrawImage iobjects,192+121,144+64

Also momentan habe ich das so gemacht, die maskierten Objekte in ein leeres image zu kopieren (was beim Erstellen ja black ist). Anschliessend kommt noch die Quantität unten rechts hin. Dann wird das leere Inventar abgebildet und davor dann das (mask.) Bild mit den Objekten und Mengen (vor eine 3-D Szene).

Wenn ich dann noch grabimage mache, müsste das ganze Bild im Speicher liegen. Das hätte für mich den Vorteil, dass das zum Anzeigen viel weniger CPU-Zeit frisst, weil es natürlich einfach rechteckig ist und man das Teil dann auch noch einfach aus-/einblenden kann.
Erfolglos begonnene BB-Projekte:TRON/CONVOY/MYSTIC

Neoxit

BeitragFr, Dez 03, 2010 1:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hätte es auch wie eben schongesagt halt mit nem Array oder einem Type gemacht.
Jedes Item eine ItemID gegeben und deinem Inventar für jeden platz ebenfalls eine ID.

Bspw: Du hast 24 Inventarplätze, und legst etwas hinein, dann überprüfe ob was frei ist, dann setze das Image der ItemID auf die Position deiner PlatzID.

So oder so ähnlich habe ich es immer gemacht.
Viel erfolg weiterhin

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group