Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

1

16.01.2009, 23:09

[sfml] colorkey und Rectangles

hi,
ich bins "mal wieda" :o

hab 2 Fragen :

1. gibts ne funktion in sfml die colorkey einstellt habs mit creatmaskfromcolor probiert aber ging nich oder......

2. soll ich zur kollisions prüfung rectangle klasse nehmen oder einfach die x und y werte meines Sprites, da ich nich richtig weiss wie ich sf::rect richtig deklariere

hoffe ich könnt meine fragen beanworten, sind ja auch nich allzu schwer :lol:

Thx schonmal im voraus :D
New Project: Operation CityRacer

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

2

16.01.2009, 23:20

sf::Image hat folgende Funktion, ich glaube die könnte helfen, hab aber jetzt grad nur schnell gesucht und das hab ich als erstes gefunden:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
void Image::CreateMaskFromColor(Color ColorKey, Uint8 Alpha)
{
   // Calculate the new color (old color with no alpha)
   Color NewColor(ColorKey.r, ColorKey.g, ColorKey.b, Alpha);

   // Replace the old color by the new one
   std::replace(myPixels.begin(), myPixels.end(), ColorKey, NewColor);

   // The texture will need to be updated
   myUpdated = false;
}


Zu dem anderen kann ich dir grad nicht wirklich was sagen, weil ich aufm Sprung bin.

Gruß Marius

3

16.01.2009, 23:30

1.

C-/C++-Quelltext

1
2
sf::Image Image;
Image.CreateMaskFromColor(sf::Color(r, g, b), 0);

oder auch hier

2. so erstellst du dir ein Rectangle aber ich weiß nicht warum du ein Rectangle erstellen willst für eine Kollission, ok, für kompilzierte Figuren könnte man schon Rectangles benutzen, Polygone sind aber meiner Meinung nach besser geeignet. Und wenn du normale Kollissionserkennungen durchführen willst reichen dir ja die X/Y Kooridnaten und die größe deines Sprites.

Hoffe ich konnte dir helfen.

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

4

16.01.2009, 23:51

k thx für die antworten...
ja dann nehm ich doch sprites zur kollisionsabfrage...
New Project: Operation CityRacer

5

16.01.2009, 23:59

sf::Sprite besitzt drei Memberfunktionen, mit denen du die Koordinaten der Ränder berechnen kannst. Das wären GetPosition(), GetCenter() und GetSize(). Wenn du das Zentrum nicht veränderst, brauchst du sogar nur zwei.

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

6

17.01.2009, 00:37

Hab grad mal drüber nachgedacht, so muss man doch für jedes Bild den ColorKey explizit angeben. Weiß jemand ob SFML auch ne Möglichkeit bietet das global für alle Images zu machen?

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

7

17.01.2009, 00:52

mit (alpha)blending =)
"Don't trust your eyes: They are a hell of a lot smarter than you are"

8

17.01.2009, 11:28

Ein "Image-Array" erstellen und das in ne Schlaufe packen. Das sind 5 Zeilen Code für hunderte Bilder :)

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

9

17.01.2009, 11:56

Naja ich werde mir denke ich ne Funktion CreateSpriteFromFile(std::string path) machen, mit welcher ich dann direkt ein Bild lade, den Colorkey setze und ein Sprite zurückgebe. Müsste doch klappen oder sieht jemand da ne Stolperfalle?

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

10

17.01.2009, 11:58

K-Bal nö ich glaub nicht, so hab ichs auch gemacht

ok hab noch ne Frage un zwar :

Ich hol meine mouse X position und Y position und möchte meinen player zu der x und y position hindrehen aber in sfml kann ich ja nur um ein bestimmten winkel drehen...gibts da irgend ne formel...hmmm...vllt. sowas wie ein gleichungs system(glaub ich eh nich) machen oder sowas :roll:
New Project: Operation CityRacer

Werbeanzeige