Anzeige:
Ergebnis 1 bis 7 von 7

Thema: "Parsen" von Grafkdateien

  1. #1
    Registrierter Benutzer Avatar von DanDanger
    Registriert seit
    15.12.2001
    Ort
    /home/dandanger
    Beiträge
    130

    "Parsen" von Grafkdateien

    Hallo,
    bei TuxRacer / OpenRacer kann man seine eigenen Strecken mit einem ganz normalen Grafikprogramm (z.B mit GIMP erstellen). Das Proggi weißt dann unterschiedlichen Farben bestimmte Streckenmerkmale zu.
    Meine Frage : Hat das schonmal jemand gemacht ???

    Währe ja echt klasse, wenn man z.B. die Level für ein kleines 2D Ballerspiel einfach mit einem Grafikprogramm "Malen" könnte (einfacher geht's ja nimmer).

    Leider ist der Quellcode von TuxRacer so konfus, das ich da nicht Durblicke :-(

    Also : Wie kann ich eine Grafikdatei "Parsen", so dass ich z.B. Informationen wie "An Pos (X, Y) befindet sich ein Pixel mit dem Farbwert (RGB 23, 255, 120)" bekomme ????

    Neugierige Grüsse
    DanDanger
    ------------------------------------
    DanDanger

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Das kann praktisch jede Bibliothek, die Bilder laden und bearbeiten kann

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    12.09.2000
    Beiträge
    46

    Re: "Parsen" von Grafkdateien

    Original geschrieben von DanDanger
    Währe ja echt klasse, wenn man z.B. die Level für ein kleines 2D Ballerspiel einfach mit einem Grafikprogramm "Malen" könnte (einfacher geht's ja nimmer).
    Ja sowas ist ziemlich cool, solange man keine Tiefeninformationen speichern will, denn dann wirds schwer! Sowas gabs früher mal für Wolfenstein 3D, war echt cool. Kannst ja mal schauen, obs den Editor irgendwo im Netz gibt... den Wolfenstein-Code gibts ja bei idsoftware.com

  4. #4
    Registrierter Benutzer Avatar von DanDanger
    Registriert seit
    15.12.2001
    Ort
    /home/dandanger
    Beiträge
    130
    Hi,

    @anda_skoa :
    hmm, also ich Programmiere z.Z. mit den SDL-Lib's, kann so eine Funktion aber nirgends finden (Auch nicht in der Referenz von libsdl.org).... :-(

    Kannst du mir mal einen kleinen Ansatz geben, wo ich genau suchen muss ??



    @Sion :
    Den Wolfenstein-Editor kenne ich leider nicht.
    Tiefeninformationen brauche ich eigentlich keine.

    Das ganze Level für den 2D-Shooter sollte eigentlich in 2 Bild-Dateien gespeichert werden :
    Bilddatei 1 enthät nur den Aufbau des Levels (z.B Rote Pixel = Gegner, Grüne Pixel = PowerUp, usw.). Diese Datei würde also nur aus ein paar Pixeln bestehen.

    Bilddatei 2 enthält dann die eigentliche "Grafik" des Spiels (also, den Hintergrund, etc.)

    Im Spiel sollen dann beide Bilddateien "Übereinandergelegt" werden, wobei dann Natürlich die Farbigen Pixel aus Bilddatei 1 durch Gegner, Hindernisse, PowerUp's, etc. ersetzt werden...........

    So hab' ich mir das Ungefähr vorgestellt...... :-)

    Neugierige Grüsse
    DanDanger
    ------------------------------------
    DanDanger

  5. #5
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Original geschrieben von DanDanger

    @anda_skoa :
    hmm, also ich Programmiere z.Z. mit den SDL-Lib's, kann so eine Funktion aber nirgends finden (Auch nicht in der Referenz von libsdl.org).... :-(

    Kannst du mir mal einen kleinen Ansatz geben, wo ich genau suchen muss ??
    ich kenn mich mit der SDL lib nicht aus, aber ich habe in der Doku gesehen, dass es Funktionen SDL_GetRGB und SDL_SetRGB gibt und dass in SDL_Surface offensichtlich Pixeldaten enthalten sind.

    Vielleicht kannst du damit etwas anfangen.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  6. #6
    Registrierter Benutzer
    Registriert seit
    10.04.2001
    Ort
    Bremen
    Beiträge
    339
    Die Pixeldaten und deren Dimensionen bekommt man von einer SDL_Surface durch
    Code:
    unsigned char *data = (unsigned char *)surface->pixels;
    int width = surface->w;
    int height = surface->h;
    c ya,
    Tobias

  7. #7
    Registrierter Benutzer Avatar von DanDanger
    Registriert seit
    15.12.2001
    Ort
    /home/dandanger
    Beiträge
    130
    Hmmm,
    wie ich die Dimesionen eines Bildes bekomme, weiss ich schon.
    Es ist so : ich möchte ein Bild (z.B. LevelXYZ.bmp) laden, mit
    SDL_LoadBMP, und dann die Farbinformationen der Pixel an einer bestimmen Koordinate bekommen.

    z.B :

    void Hole_Farbwerte("LevelXYZ.bmp", 12, 123) ;

    würde mir dann die RGB-Farbwerte des Pixels an der Koordinate X=12 / Y=123 aus dem Bild "LevelXYZ.bmp" liefern.......


    Neugierige Grüsse
    DanDanger
    ------------------------------------
    DanDanger

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •