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

valentin

Treue Seele

Beiträge: 212

Wohnort: Schweiz

Beruf: Schüler

  • Private Nachricht senden

11

16.06.2011, 16:32

So sollte es ca. passen.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
sf::Sprite spr;
sf::Sprite blend;
blend.SetPosition(spr.GetPosition().x,spr.GetPosition().y);
blend.Resize(spr.GetSize().x,spr.GetSize().y);
for(i=0;i!=255;++i)
{
    blend.SetColor(0,0,0,i);
    App.Draw(blend);
    App.Display();//Optional
}


@JRJ: afaik wird mit SetColor() einfach die Farbe des ganzen Sprites geändert. Sobald es also ein mehrfarbiges Bild ist, kannst du das vergessen ;).
visit me on deviantArt!
http://v-alentin.deviantart.com/

There is no programming language, no matter how structured, that will prevent programmers from making bad programs. //Larry Flon

12

16.06.2011, 18:39

danke für die antwort, doch trotzdem geht es nicht
Hier der Sourcecode:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>

int main()
{
    sf::RenderWindow App(sf::VideoMode(800, 600, 32), "Test");
    sf::Image image;
    if (!image.LoadFromFile("Test.jpg"))
    {
        return EXIT_FAILURE;
    }
    
    sf::Sprite sprite;
    App.Draw(sprite);
    sf::Sprite blend;
    blend.SetPosition(sprite.GetPosition().x, sprite.GetPosition().y);
    blend.Resize(sprite.GetSize().x, sprite.GetSize().y);
    sprite.SetImage(image);
    sprite.SetPosition(0.f, 0.f);
    while(App.IsOpened())
    {
        int x;
        for(x=0;x!=255;++x)
        {
        blend.SetColor(sf::Color(0, 0, 0, x));
        App.Draw(blend);
        App.Display();
        }
    }
        return 0;
}


Da entsteht nur ein schwarzes Fenster :(
help

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

13

16.06.2011, 18:41

Das beispiel von Valentin ist nicht gerade Anfängergerecht...
Überleg mal was da genau passiert.
Übrigens solltest du immer die Events abfragen.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

14

16.06.2011, 18:42

sind events immer nötig?
aber es bringt doch nichts
es soll ja von alleine kommen ohne ein tastendruck

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

15

16.06.2011, 18:45

Man soll doch zumindest das Programm schließen können oder?
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

16

16.06.2011, 18:46

ich habs als konsolenfenster also dazugemacht
wenn man das konsolenfenster schlisst dann schlisst sich auch das fenster

17

16.06.2011, 18:51

kann mir jemand ein beispiel machen des komplett ist (vlt ist es zu viel verlangt)?
bitttttttteeeee

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

18

16.06.2011, 18:53

Mach es selbst, dabei lernst du mehr und du verstehst es auch vollkommen. Wenns nicht klappt: mach was einfacheres. Das was du vorhast ist nicht wirklich schwer, solltest du es nicht hinbekommen -> mehr üben und Doku lesen.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

valentin

Treue Seele

Beiträge: 212

Wohnort: Schweiz

Beruf: Schüler

  • Private Nachricht senden

19

16.06.2011, 18:54

Hast du wenigstens mal die Tutorials der Sfml angeschaut/durchgearbeitet?
Dann hättest du auch ne anständigere Gameloop.

Ausserdem hättest du den Code von mir wenigstens n bisschen anschauen und dazu etwas überlegen können. Du setzt z.B. die Position des blend-Sprites fest, bevor du dein Sprite (welches ja dunkler werden soll) richtig bestimmt hast (Position, Grösse). Ausserdem läuft die for-Schleife wahrscheinlich so oschnell ab, dass du davon garnix mitbekommst ;).

@NachoMan: Wie würd's denn noch einfacher gehen? ^^
visit me on deviantArt!
http://v-alentin.deviantart.com/

There is no programming language, no matter how structured, that will prevent programmers from making bad programs. //Larry Flon

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

20

16.06.2011, 19:00

@NachoMan: Wie würd's denn noch einfacher gehen? ^^

Ganz ohne Beispielcode. Das verleitet zu Copy&Paste und dann gibts nur viele weitere Fragen.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Werbeanzeige