sdl - transparenz festgelegt dennoch nicht transparent

psyco001

Still Fresh
Joined
Nov 12, 2007
Messages
260
hallo leute,

mal wieder ich...
mein aktuelles problem was ich zu lösen vermöge sieht folgend aus:
Ich setze alle pixel des framebuffers auf die farbe schwarz,
zeichne dann das gelände in den buffer und zeichne dann tiles mit transparents darüber.
Das problem:
Sobald ich die als transparent gesetzten tiles zeichne, sehe ich nurnoch schwarz, obwohl ich dort das gelände sehen sollte.
ich hoffe einer von euch kann mir bei diesem problem helfen, so dass die transparente fläche auch wirklich tansparent bleibt.
um nochmal genauer zu sein, das screen surface wird mit den transparentz daten gefüllt, obwohl dies nicht passieren soll.
 

psyco001

Still Fresh
Joined
Nov 12, 2007
Messages
260
so, das problem mit der transparents hat sich jetzt gelöst.
Das ist sozusagen ein folgefehler der durch folgendes herforgerufen wurde, wobei ich diesmal echt überhaupt nicht weis wie ich das lösen soll.
folgender code [edited]:
Code:
bool isFirstElement = true;
	for( TiXmlElement* Layer = layers->FirstChildElement("layer"); Layer; Layer = Layer->NextSiblingElement("layer") )
	{
		this->m_MapLayerList.push_back( new CEngineMapLayer(this->m_Renderer, &this->MapSize));
		//this->m_MapIter = this->m_MapLayerList.end(); // Hier lag das Problem
		if(isFirstElement == true)
		{
			this->m_MapIter = this->m_MapLayerList.begin();
			isFirstElement = false;
		}
		else
			this->m_MapIter++;  //Hiermit hab ich das problem gelöst
		//printf(" debug xmlRead: %s\n",Layer->Attribute("tileset"));
		(*this->m_MapIter)->SetTileImage((char*)Layer->Attribute("tileset"));
		(*this->m_MapIter)->SetLayerType((E_LayerType) atoi(Layer->Attribute("type")));
		(*this->m_MapIter)->SetLayerData((char*)Layer->GetText());
		//(*this->m_MapIter)->SetColorKey((Uint32)atoi( Layer->Attribute("colorkey")));
	}
Das Problem ist, das ich vorher die Variable isFirstElement nicht auf true gesetzt habe und dadurch jedesmal die daten der einzelnen ebennen überschrieben wurden, nun habe ich nach der korrektur aber das problem das ich wenn ich this->m_MapLayerList.end() aufrufe ein falscher pointer zurück gegeben wird.
Woran könnte das liegen bzw. wie kann man dieses problem beheben?

edit: hab grad doch ne lösung gefunden die ich aber etwas dreckig finde.
 
Top