Autolack?? Mit Setgamma?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

pogi02

Betreff: Autolack?? Mit Setgamma?

BeitragDi, Feb 08, 2005 23:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo

Ich bin gerade dabei ein kleines Autorennspiel in 2D zu proggen (ähnlich wie es D2006 schon macht)

Nur ich habe die Automodele alle in weiss gezeichnet und jetzt möchte ich das der Spieler eine eigene Autofarbe wählen kann z.B Rot

Doch wie Kann ich das am besten realisieren?? Hab es mit Setgamma 255,255,255, 255,0,0 versucht aber da wird alles was Weiß ist Rot

Und es gibt auch keinen Befehl der das Setgamma rückgängig macht

Also was wäre die beste Lösung??

D2006

Administrator

BeitragDi, Feb 08, 2005 23:16
Antworten mit Zitat
Benutzer-Profile anzeigen
die Fabre, die variabel sein soll als Maskcolor setzen und das Bild dann über ein farbiges Rechteck malen und graben. MfG
 

pogi02

BeitragDi, Feb 08, 2005 23:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo

Danke für die schnelle Antwort aber ich versteht nicht ganz wie du das meinst???

Ich soll die Farbe weiß transperent machen und darunder ein rechtecke setzten in der Farbe die ausgewählt wurde oder wie??

Und noch eine Frage weiss wer eine brauchbare fertige Mapengine? In diesem Gebiet bin ich noch voll unerfahren und weiss auch nicht wie ich sowas angehe sollte auf was ich achten muss usw.

BladeRunner

Moderator

BeitragMi, Feb 09, 2005 10:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Falls du die Maskfarbe noch brauchst (nur Dee hat ja Rechtecke als Autos ; *hrhr*) kannst Du dir auch ne kleine funktion schreiben die zum Spielbeginn das Weiss per Readpixel(fast) ausliest und durch die anderen Farben ersetzt.

PSEUDO:
Code: [AUSKLAPPEN]
function replace_color(imagehandle,SourceR,SG,SB,TargetR,TG,TB)
setbuffer imagebuffer(imagehandle)
for x=0 to imagewidth()-1
   for y= 0 to imageheight()-1
      blub=readpixel x,y
        if blub=Sourcefarbe ;vorher berechnen, siehe OH
        writepixel x,y,targetfarbe ;vorher zusammenbauen, siehe onlineHilfe
       endif
   next
next
setbuffer backbuffer()
end function

so ungefähr.
Dann musst du vorher nurnoch eine Kopie des Originalimages erstellen und die mit der Funktion bearbeiten.
Da das aber etwas Zeit in Anspruch nimmt, muss es eben bei Programmstart vorberechnet werden. Und es ist halt ein bissl Speicheraufwendig, je nachdem wieviele Animationsschritte und Farben du willst.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

pogi02

BeitragMi, Feb 09, 2005 20:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hy

Achso naja und einen einfacheren Weg gibt es woll nicht oder? Bzw. schnelleren und einen der nicht so viel Speicher friesst ^^

Und Mapengine? Hat da wer eine oder wenigstens ein Tutorial oder so damit ich ein bisschen verstehe wie es Funktioniert?
 

Dreamora

BeitragMi, Feb 09, 2005 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Die variante ist eigentlich problemlos schnell genug, da du das ja nicht in echtzeit machst sondern beim laden und vorbereiten der daten. geht weniger als 1s Smile

für mapengine, schau ma auf http://www.robsite.de unter den tutorials und hier in der "FAQ & Tutorials" Sektion
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

pogi02

BeitragDo, Feb 10, 2005 10:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo



Achso also geht das eh recht schnell naja dann ist das halb so wild =) Danke

Und auch vielen Dank für dieses Tut ich werde mir das mal durchlesen
http://pogi02.hat-gar-keine-homepage.de

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group