Mein OpenGL Tower Defense spiel.



  • Habe mir in den Semesterferien etwas C++ beigebracht. Bin grundsätzlich zufrieden denn ich komme gut voran. Aber ein par Fragen habe ich.

    Bisher benutze ich die Funktion
    GetCursorPos();
    Um die Mausposition zu erhalten. Den Wert rechne ich dann auf die Mapkoordinaten um. Zoomen und die Map verschieben ist kein Problem. Eine frei beweglche kamera gelingt mir aber nicht, da ich die Zahlen dann nicht mehr auf die Map umrechnen kann.

    Gibt es eine Möglichkeit die Mausposition über OpenGL abzufragen? So das Kameraposition und Winkel bereits berücksichtiht werden?

    Zum laden der Texturen benutze ich den DevIL. Das Klappt alles auch bestens. Wenn ich jedoch animierte z.B. gif Bilder lade, dann bewegt sich im Spiel nichts.
    Ist Gif das falsche Format? Ließe sich das leicht realisieren oder müsste ich viele Bilder/Texturen nacheinander Zeigen?

    Hat jemand Interesse bei der ganzen Sache mit einzusteigen? Weitere Texturen und Gebäude stehen an.... Ich benutze Visuel Studio 10. Schicke das Projekt gerne Rum wenn jemand mitmachen will.

    Grüße



  • ProfChaos schrieb:

    Gibt es eine Möglichkeit die Mausposition über OpenGL abzufragen? So das Kameraposition und Winkel bereits berücksichtiht werden?

    Nein, natürlich nicht.

    Zum laden der Texturen benutze ich den DevIL.

    Beileid.

    Das Klappt alles auch bestens. Wenn ich jedoch animierte z.B. gif Bilder lade, dann bewegt sich im Spiel nichts.

    Was hast du erwartet?

    Ließe sich das leicht realisieren oder müsste ich viele Bilder/Texturen nacheinander Zeigen?

    Nein, ja.



  • Lade jedes Frame des gif-Bildes in die selbe Textur. Grund: Texturwechsel sind teuer, Verschiebungen nicht.



  • @EOutOfResources:
    Ich glaube er hat erstmal noch GANZ andere Probleme.
    Ich verstehe nicht inwiefern der Ratschlag ihm *irgendwas* bringen soll.



  • ProfChaos schrieb:

    Habe mir in den Semesterferien etwas C++ beigebracht. Bin grundsätzlich zufrieden denn ich komme gut voran. Aber ein par Fragen habe ich.

    Bisher benutze ich die Funktion
    GetCursorPos();
    Um die Mausposition zu erhalten. Den Wert rechne ich dann auf die Mapkoordinaten um. Zoomen und die Map verschieben ist kein Problem. Eine frei beweglche kamera gelingt mir aber nicht, da ich die Zahlen dann nicht mehr auf die Map umrechnen kann.

    Gibt es eine Möglichkeit die Mausposition über OpenGL abzufragen? So das Kameraposition und Winkel bereits berücksichtiht werden?

    Zum laden der Texturen benutze ich den DevIL. Das Klappt alles auch bestens. Wenn ich jedoch animierte z.B. gif Bilder lade, dann bewegt sich im Spiel nichts.
    Ist Gif das falsche Format? Ließe sich das leicht realisieren oder müsste ich viele Bilder/Texturen nacheinander Zeigen?

    Hat jemand Interesse bei der ganzen Sache mit einzusteigen? Weitere Texturen und Gebäude stehen an.... Ich benutze Visuel Studio 10. Schicke das Projekt gerne Rum wenn jemand mitmachen will.

    Grüße

    Ja, GIF ist das falsche Format. Mach eine einfache Picture-by-Picture Animation.
    Sprich, zeige einfach ein Bild nach dem anderen. Am besten mach das mit einem Textur-Atlas.
    In meiner 2D Bibliothek hab ich das genauso gemacht.



  • Danke erstmal.

    Eine schwenkbare Kamera werde ich auch erstmal lassen. Bis das umgesetzt ist. Naja...

    Da das mit den Texturen swierig wird stelle ich es hinten an.

    Textur-Atlas=?
    Also eine Textur mit Index nein oder? Sorry habe das nie irgendwo gelernt.
    Werde es mal googeln.

    hustbaer, wieso was gibt es gegen DevIl zu sagen. War froh dass es überhaupt gelungen ist Texturen zu laden. Gibt es denn eine bessere Variante die nicht all zu kompliziert ist?

    Ich habe das Spiel gedanklich schon fertig. Die schwierigen Spielfunktionen laufen alle. Man kann auch speichern laden etc. Auch wird wenig CPU leistung benötigt.

    Aber es dauert ja alles ewig erstmal rauszufinden wie es geht. Weitere Fragen werden ich hier stellen.

    Grüße.



  • ProfChaos schrieb:

    Danke erstmal.

    Eine schwenkbare Kamera werde ich auch erstmal lassen. Bis das umgesetzt ist. Naja...

    Da das mit den Texturen swierig wird stelle ich es hinten an.

    Textur-Atlas=?
    Also eine Textur mit Index nein oder? Sorry habe das nie irgendwo gelernt.
    Werde es mal googeln.

    hustbaer, wieso was gibt es gegen DevIl zu sagen. War froh dass es überhaupt gelungen ist Texturen zu laden. Gibt es denn eine bessere Variante die nicht all zu kompliziert ist?

    Ich habe das Spiel gedanklich schon fertig. Die schwierigen Spielfunktionen laufen alle. Man kann auch speichern laden etc. Auch wird wenig CPU leistung benötigt.

    Aber es dauert ja alles ewig erstmal rauszufinden wie es geht. Weitere Fragen werden ich hier stellen.

    Grüße.

    Ein Textur-Atlas ist eine Textur mit vielen kleineren Bildern drauf. Dadurch machst du keinen Texturwechsel, welcher sehr teuer ist, sondern eben nur einen Koordinaten-Wechsel.
    Ich benutze das Tool hier:
    http://spritesheetpacker.codeplex.com/

    Meine Implementation zum lesen der Datei:
    http://code.google.com/p/nightlight2d/source/browse/trunk/NightLightDLL/NLSpriteSheet.cpp#50


Log in to reply