Announcement

Collapse
No announcement yet.

Bildschirmauflösung ändern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bildschirmauflösung ändern

    Hallo,

    Momentan basteln wir in der Technischen Berufsschule etwas mit C++ herum.
    Als (lerning by doing) Projekt hat sich unserern Lehrer so ne anr simplen 2D shooter mit nen paar bewegten objekten vorgestellt die dann auf den ausklick reagieren.

    Soweit so gut.

    Die hintergrundbilder und objekte sind alle in 1024x768 gespeichert.
    Wenn der (in anführungsstrichen) Shooter gestartet wird wird das hintergrundbild auf die passende größe des Bildschirms gezogen, was man allerdings von den Objekten nicht sagen kann.


    Also dachte ich mir ich lasse das "streaching" des hintergrundbildes weg und erzwinge irgentwie das windows auf 1024x768 schaltet.

    PS. die bewegungen der sprites werden momentan ausschließlich über den CPU abgearbeitet, also noch kein DirektX, OpenLG oder wie auch immen.

    Als entwicklungsumgebung benutzen wir in der schule den Borland C++ Builder 6



    Ich hoffe ihr habt ne Idee.

    Ich habe schon meine Finger blutig gegoogelt.
    Aber finde diesen (warscheinlich) simplen befehl nicht.
    Oder ich suceh nur an den falschen stellen.
    Bin ja auch nen kompletter frischling in dieser Materie ^^


    mfg. Scythe-man

  • #2
    http://www.marquardtnet.info/cecke/k...ngescreen.html
    Christian

    Comment


    • #3
      Kurze frage noch,
      wo finde ich dieses einzufügende (TChangeScreen) objekt beim C++ Builder 6 (ist doch so wie der timer nen objekt ODER)


      wenn ich das richtig gesehen habe


      bin halt noch nen kompletter neuling


      mfg. Scythe-man

      Comment


      • #4
        Dann folge auf der o.g. Seite dem Download-Link ...

        Comment


        • #5
          Ja hab ich gemacht

          hab das paket oben runtergeladen und nach der anleitung als neue komponente im "C++ Builder 6" hinzugefügt.


          Aber ich weiss nicht wo ich jetzt was einzustellen habe.

          Eigentlich sollte es doch jetzt funktionieren.
          So sieht es momentan aus.

          Die komponente ist doch eigentlich erfolgreich hinzugefügt worden.




          Wo kann da der fehler liegen ?

          Jetzt sollte er doch eigentlich beim ausführen auf 1024x768 umschalten ...ODER fehlt da noch was?



          mfg. Scythe-man
          Zuletzt editiert von scythe-man; 08.10.2009, 00:08.

          Comment


          • #6
            Auf der Seite ist eine Beschreibung der Klasse

            Hast du Execute ausgeführt?
            Christian

            Comment


            • #7
              Originally posted by Christian Marquardt View Post
              Auf der Seite ist eine Beschreibung der Klasse

              Hast du Execute ausgeführt?
              Tut mir leid,
              Wie "Execute" ausgeführt
              Ich habe die komponente eingefügt... reicht das nicht.

              Ich habe die komponente einfach runtergeladen, im C++Builder intalliert und via der komponentenliste eingefügt und die größen bei den eigenschaften von ChangeScreen1 (siehe Bild oben) geändert.


              Mehr nicht.

              Oder muss ich da noch was seperat einfügen damit die kompunente überhaupt ausgeführt wird.


              mfg. Scythe-man

              Comment


              • #8
                ??Alles anderen Komponenten die du sonst so benutzt funktionieren einfachmal so ohne weiteres zutun?

                Du benutzt nicht

                TMemo->Lines oder TEdit->Text??

                Es wäre schon schön, wenn du auf der Seite die Erläuterungen der Klasse lesen würdest:

                Unter public Execute() findest du:


                Schaltet auf die neue Auflösung um. Gibt folgende Werte zurück:
                DISP_CHANGE_SUCCESSFUL = Änderung erfolgreich
                DISP_CHANGE_RESTART = Änderung nach Neustart
                DISP_CHANGE_BADFLAGS = Falsche Parameter
                DISP_CHANGE_FAILD = Fehler im Grafikkartentreiber
                DISP_CHANGE_BADMODE = Auflösung wird nicht unterstützt
                DISP_CHANGE_NOTUPDATTED = (NT) Registry konnte nicht geöffnet werden

                Insofern musst du das umschalten irgendwann in deinem Programm mit dieser Methode vornehmen
                Christian

                Comment


                • #9
                  Doch schon aber momentan gehen wir mehr oder weniger nach seiner anleitung vor.
                  Und er hetzt da manchmal ganzschön durch.

                  So das man manchmal nur stumpf vom Beamer abschreibt und keine zeit hat darüber nachzudenken, was jetzt gerade überhaupt gemacht wurde.


                  Die ganzen möglichen Befehlssätze habe ich jetzt auf der oben genannten seite gefunden aber kapiere halt nicht wo jetzt was genau aufgerufen weren muss.

                  Was muss denn jetzt genau aufgerufen werden (Ich nehme mal an in den grundobjekt "Form1")


                  Muss ich das ScreenChange objekt auch wieder mit -> irgentwie ansprechen.


                  Sorry für meine unwissenheit.


                  mfg. Scythe-man

                  Comment


                  • #10
                    Wenn du die Komponente in das Formular gezogen hast, bekommt sie einen Namen. Üblicherweise ChangeScreen1.

                    Im OnCreate der anwendung beispielsweise

                    ChangeScreen1->Exceute();

                    aufrufen
                    Christian

                    Comment


                    • #11
                      ...also ich habs verstanden xD

                      Schöne Grüße aus der TAI91

                      MFG
                      Felix

                      Comment


                      • #12
                        Habs gerade ausprobiert,

                        Es läuft ^^


                        Jetzt nur die frage, wie und wo liest man den alten Auflösungswert aus um nach dem Programmende wieder auf (in meinen fall) 1280x1024 zu springen.




                        mfg. Scythe-man
                        Zuletzt editiert von scythe-man; 08.10.2009, 23:12.

                        Comment


                        • #13
                          Du könntest in den Quelltext der Komponente schauen....da steht es drin
                          Christian

                          Comment

                          Working...
                          X