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

Flutschi

Treue Seele

  • »Flutschi« ist der Autor dieses Themas

Beiträge: 90

Wohnort: Schweiz

  • Private Nachricht senden

1

11.09.2012, 09:42

Fragen zu Sprites..

Guten Tag die Damen,


Ich hätte da ein paar Fragen zu den Sprites:


- Wie mache ich die "grüne" Farbe (also der Hintergrund) unsichtbar?
- Lade ich besser einzelne Bilder in einzelne Sprites oder arbeite ich mit einem Sprite und änder einfach die .setTextureRect so das es immer das anzeigt was ich will?
- weis jemand wo es irgendwo Tutorials zu Sprites oder Animationen oder ähnliches gäbe?


Jo danke für die Antworten!
♥ SFML 2.0 Visual Express 2010 ♥

Crazy007

Treue Seele

Beiträge: 186

Wohnort: Tirol

  • Private Nachricht senden

2

11.09.2012, 10:26

Welche Engine benutzt du?
Den grünen Hintergrund kannst du mit paint.net oder gimp entfernen.
Der Error sitzt meistens vor dem Bildschirm! :D

Flutschi

Treue Seele

  • »Flutschi« ist der Autor dieses Themas

Beiträge: 90

Wohnort: Schweiz

  • Private Nachricht senden

3

11.09.2012, 10:27

SFML 2.0 (Ich hatte es im Title, habs wohl ausversehen gelöscht..)

mit GIMP? kurze erklärung wie?
♥ SFML 2.0 Visual Express 2010 ♥

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

4

11.09.2012, 10:38

bezüglich Gimp (da ich gerade kein gimp zur Hand habe, kann ich es nur aus der Erinnerung heraus sagen):
- Auswahl nach Farbe (dürfte ein solches Werkzeug geben)
- Farbe auswählen
- "Entf" drücken

entweder ist jetzt das Bild an der Stelle transparent (erkennbar durch karierten Hintergrund) oder hat die Hintergrundfarbe angenommen
letzteres kann nur dann passieren, wenn das aktuell verwendete Bildformat keine Transparenz unterstützt
man kann in Gimp dies zwar in ein Format umwandeln, welches dies tut
solltest du dies aber nicht finden (damit hatte ich erst Probleme), wäre das einfachste, ein neues Bild mit Transparenz als Hintergrund anzulegen, dein Bild einzufügen und den Hintergrund zu entfernen

mit PyGame (benutzt meines Wissens SDL) ist es möglich, für ein Surface einen "colorkey" festzulegen, was dem entspricht, was du haben willst
ggf. gibt es etwas derartiges auch unter SFML (dazu einfach mal Google bzw. die Dokumentation befragen)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Flutschi

Treue Seele

  • »Flutschi« ist der Autor dieses Themas

Beiträge: 90

Wohnort: Schweiz

  • Private Nachricht senden

5

11.09.2012, 10:58

wow das is ja einfach ;)

vielen vielen dank.
♥ SFML 2.0 Visual Express 2010 ♥

6

11.09.2012, 11:08

In SFML 2.0 geht das so:

C-/C++-Quelltext

1
2
3
    sf::Image spaceship;
    spaceship.loadFromFile("spaceship.png");
    spaceship.createMaskFromColor(sf::Color(255,0,255));

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

7

11.09.2012, 13:22

1) Transparenz benutzen (muss man unter OpenGL aktivieren, also wahrscheinlich auch unter SFML).
2) Das kannst du handhaben wie du willst, einfacher ist es (auch beim erstellen der Sprites) eine Textur zu nehmen und für jeden Animationsschritt die Texturkoordinaten zu ändern, bzw. einfach andere zu verwenden (dein setTextureRec()).
3) Naja das Grundprinzip sollte ja wohl klar sein, dafür braucht man kaum ein Tutorial, höchstens zum erstellen der Sprites.

8

12.09.2012, 10:11

In SFML 2.0 geht das so:

C-/C++-Quelltext

1
2
3
    sf::Image spaceship;
    spaceship.loadFromFile("spaceship.png");
    spaceship.createMaskFromColor(sf::Color(255,0,255));


Also ich denke mal du magst den hintergrund nicht in deinem Programm angezeigt bekommen deshalb nützt es nicht in Paint oder Gimp nur die Hintergrundfarbe zu ändern. So wie es Anom21 schreibt wäre der Richtige weg, nur die Farbwerte die hier angegeben sind dürften für deinen Fall nicht Funktionieren da hier die Farbe Lila Transparent gemacht wird. Du müstest die Frabewerte für deinen Hintergrund eintragen also z.B.

C-/C++-Quelltext

1
spaceship.createMaskFromColor(sf::Color(0,99,0)); //  ein Grün Ton 

Welche Farbwerte der Hintergrund deines Bildes hat kann dir Paint verraten.


Gruß Koschi
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

9

12.09.2012, 11:01


Also ich denke mal du magst den hintergrund nicht in deinem Programm angezeigt bekommen deshalb nützt es nicht in Paint oder Gimp nur die Hintergrundfarbe zu ändern.

Ehrm wieso nicht?
Spielt doch keine Rolle ob du vorab die Hintergrundfarbe auf echt transparent setzt (und in einem Format abspeicherst, dass dies unterstüzt) oder ob du mit SFML gehst und die Transparente Farbe selbst deginierst, hat beides mal den gleichen Effekt und da man sich mit GIMP/etc. etwas Programcode sparen kann, finde ich persönlich dies eine bessere Lösung. ;)
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

10

12.09.2012, 11:03

Abgesehen davon kann man mit Masken, die aus Farben erstellt werden, keine halbtransparenten Sprites darstellen, sodass z.B. ein Pixel zwar eine Farbe hat, aber noch den Hintergrund durchschimmern lässt.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Werbeanzeige

Ähnliche Themen