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

T-VIRUS

Alter Hase

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

11

03.12.2007, 19:54

Hallo,
was SDL angeht, nutzt für Sound lieber SDL_Mixer und für Grafiken SDL_Image.

Somit kann man mehrere Bildformate sowie Soundformate abspielen.

Man muss aber die Standartfunktionen von SDL dann meiden, was Grafiken sowie Soundsladen und abspielen angeht.
Ist aber ein kleiner Preis, da die Funktionen die ihr dann aufruft auch nur die Standard Funktionen aufrufen ;)

MFG T-Virus
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

12

12.08.2008, 22:11

Hallo ich habe mal eine Frage dazu. Und zwar spielt es nicht alle .wav Daten ab. Also ich habe den Code komplett so übernommen und es spielt auch die windows sounds ab. Aber ich habe mal ein lied in .wav konvertiert und das ging nicht. Gibt es sowas wie eine größenbeschränkung bei der SDL??

SirForce

Alter Hase

Beiträge: 802

Wohnort: Süddeutschland

  • Private Nachricht senden

13

12.08.2008, 22:33

Kann sein, aber dann würde die schon sehr weit oben liegen (also 70mb waren bei mir absolut kein Problem).
Kannst du das konvertierte Lied denn normal abspielen?

EDIT: Und schau dir lieber gleich SDL_mixer an!
Nichts behindert so sehr die Entwicklung der Intelligenz wie ihre vollständige Abwesenheit.

Michail Genin

14

13.08.2008, 01:40

ja also normal mit einem Player kann ich die Dateien abspielen. Also werde ich mir mal SDL_MIXER anschauen. Trotzdem danke.

Viktor

Alter Hase

Beiträge: 533

Wohnort: Ludwigshafen

Beruf: Student

  • Private Nachricht senden

15

15.08.2008, 17:15

Ich habe gerade mal anhand des Tuts versucht ein Bild zu anzuzeigen. Anscheinend gibt es da aber Probleme mit der Position(x,y) zu geben. Immer wenn ich das Bild verschiebe, wird der Rest abschnitten (d.h.:
wenn y=30, dann werden 30 px von oben abschnitten....das Bild selber wird aber nicht verschoben.
Fals es helfen sollte:
[screen ist das Bild; es wird korekt geladen: h= 256, w=256, x=0, y=0]

C-/C++-Quelltext

1
2
    SDL_Surface* MainScreen;
    MainScreen = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);

C-/C++-Quelltext

1
2
3
4
5
6
7
8
    this->screen_dimensions.h = this->screen->h;
    this->screen_dimensions.w = this->screen->w;
    this->screen_dimensions.x = 10;
    this->screen_dimensions.y = 50;

    SDL_BlitSurface(this->screen, &this->screen_dimensions, MainScreen, &this->screen_dimensions);

    SDL_Flip(MainScreen);

[edit:] ok, hatte mir schon beinahe gedacht, dass es nur ein banaler Fehler ist, aber @Giesbert : du solltest evtl. eine detailiertere Beschreibung zu src_bmp und dest_scr machen, so dass ein unwissender nicht einfach auch durch verändern der x/y Koords. von src_bmp ein Teil der Bitmap abhackt...

16

03.01.2010, 17:10

HI habe mal versucht das ein wenig zu erweitern plos bin dann relativ schnell auf ein problem gestoßen wo ich schon ein paar stunden dran hänge und es nicht gelöst bekommen

das Programm störts sofort ab wen man es anklickt nun frag ich mich was ich falsch mache hier der code

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <SDL/SDL.h>
#include <windows.h>

int __stdcall WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    bool game = true;
    SDL_Surface*    screen;        // unser Bildschirm/Zeichenfläche/Frontbuffer

    SDL_Surface*    BGimage;        // unsere Bitmap

    SDL_Rect    src_bmp;    // Maße der Bitmap

    SDL_Rect    dest_scr;    // Maße der Bitmap auf dem Bildschirm

    //

    Uint8 type;
    Uint8 state;
    SDL_keysym keysym;
    SDL_Event event;

    // SDL initialisieren

    if(SDL_Init(SDL_INIT_VIDEO) < 0)
    {
        // Fehlerbehandlung

        return 1;
    }

    // Videomodus setzten(640*480*32) und abspeichern

    screen = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
    if(!screen)
    {
        // Fehlerbehandlung

        return 1;
    }

    // Bitmap laden und abspeichern

    BGimage = SDL_LoadBMP("C:/Test.bmp");
    if(!BGimage)
    {
     // Fehlerbehandlung

     return 1;
    }

    // Werte für unsere Bitmap setzten

    src_bmp.w = BGimage->w;        // Ganze Breite der Bitmap, die wir von unseren Surface beziehen

    src_bmp.h = BGimage->h;        // Ganze Höhe der Bitmap, die wir von unseren Surface beziehen

    src_bmp.x = src_bmp.y = 0;    // Ganze Bitmap zeichen, also von obenan zeichnen (0;0)


    dest_scr = src_bmp;            // Ziel auf dem Bildschirm = Maße der Bitmap


    // Colorkey setzen, also die Farbe, die transparent wird, hier rosa

    SDL_SetColorKey(BGimage, SDL_SRCCOLORKEY, 0xFF00FF);


    //schleife starten

    while(game)
    {
        if (event.key.keysym.sym == SDLK_ESCAPE)
        {
            game = false;
        }

        // Bild auf den Backbuffer blitten(zeichnen)

        SDL_BlitSurface(BGimage, &src_bmp, screen, &dest_scr);

        // Jetzt vom Backbuffer auf dn Frontbuffer

        SDL_Flip(screen);

        // Jetzt Aktion...

        SDL_Delay(3000);    // 3 Sekunden warten


    } // ende der game schleife


    // Surface löschen

    SDL_FreeSurface(BGimage);
    SDL_FreeSurface(screen);

    // SDL herunterfahren

    SDL_Quit();

    return 0;
}


hoffe eine von euch kann mir sagen was ich falsch mache

gruß
Mitsuomi-san

17

03.01.2010, 17:13

Kommts denn bis in die Nachrichtenschleife ?
Wie stürtzt es ab, und mit welchem Fehlercode ?
á la Messagebox C0005 fehler beim lesen an der stelle ....
oder mit Error-Code ?

18

03.01.2010, 17:23

Zitat von »"E122"«

Kommts denn bis in die Nachrichtenschleife ?
Wie stürtzt es ab, und mit welchem Fehlercode ?
á la Messagebox C0005 fehler beim lesen an der stelle ....
oder mit Error-Code ?


also es läuft einmal die schleife durch und dann steht im fester titel "(keine rückmeldung)" und ich muss die console schließen damit es ausgeht oder ich muss es über den Task-Manager schleißen wen ich beim fester schließe gibt er mir folgende fehlermeldung in der konsole aus nachdem er meinte das das programm nicht mehr reagiert

Quellcode

1
2
Process returned -805306369 (0xCFFFFFFF)   execution time : 211.713 s
Press any key to continue.

19

03.01.2010, 17:28

Wo wird denn Event abgefragt ?

20

03.01.2010, 17:38

Zitat von »"E122"«

Wo wird denn Event abgefragt ?


ich verstehe nicht ganz was du meinst
könntest du das bitte genauer erklären?

das key event ist ja an anfang von der while schleife fals du das meinst ansonsten habe ich gerade kein plan!

Werbeanzeige