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

11

09.05.2013, 15:18

Also hab jetzt nur die x position und y Position des Spielers genommen.

normalerweise müsste ja dann der Spieler immer am linken rand sein oder?^^

bei mir ist der aber immer weiter weg, am ende sogar über dem zu rendernden Bereich.

das heißt für mich eigentlich, das die Kamera sich nicht genau auf den Spieler fokusiert

12

09.05.2013, 15:24

Komischerweise ist vom Player die XAchse 800 und die der Kamera auch, wobei die vom Player eigentlich 1600 anzeigen müsste O_O

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

13

09.05.2013, 15:30

Dann scheint ShowArea nicht das zu machen was du möchtest. Und die Beiträge haben einen Bearbeiten Button. Anstatt mehrere Beiträge hintereinander zu schreiben ist es oft übersichtlicher wenn du einfach Bearbeiten klickst und unten anhängst.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

14

09.05.2013, 15:30

Okay ich habe denke ich mal das problem erkannt, oder auch nicht

Ich benutze das Framework aus diesem Buch, dessen Screen ist 800x600

auf diesen Screen wird alles geblittet, ich scrolle nur mit der Kamera dann z.b 1200x900.. kann das dazu führen, das es falsch angezeigt wird, und ich extra eine surface dafür nehmen muss die 32*50 groß ist.

Es wird halt alles auf die eine Surface screen geblittet, die nur 800x600 groß ist und mit der Kameraposition rechne ich aus, welches Tile gerade wohin geblittet werden muss.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »leridan« (09.05.2013, 15:42)


15

09.05.2013, 19:30

Danke erstmal an alle, die mir geholfen haben, habe es letztendlich, kurz ein wenig überarbeitet.

Klappt nun alles, um jetzt kurz nochmal zu beschreiben was falsch war.

Um die Exakte Position des Spielers zu bestimmen, muss man das Rect des Spielers beim Blitten noch - die kamera Position nehmen, die anderen Berechnungen haben schon gestimmt :)

hier gerade der Code für beides

Kamera Update:

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
int Max_Map_Width;
int Max_Map_Height;
Max_Map_Width=MaxMapWidth*50;
Max_Map_Height=MaxMapHeight*50;



        ShowArea.x = ( x + 40 / 2 ) - ShowArea.w / 2;
        ShowArea.y = ( y + 40 / 2 ) - ShowArea.h / 2;
         if( ShowArea.x < 0 )
        {
                ShowArea.x = 0;
         }
          if( ShowArea.y < 0 )
             {
                 ShowArea.y = 0;
            }
            if(ShowArea.x>800)
            {
                ShowArea.x=800;
            }


  if( ShowArea.y > Max_Map_Height - ShowArea.h )
    {
         ShowArea.y = Max_Map_Height - ShowArea.h;
  }
   if( ShowArea.x > Max_Map_Width - ShowArea.w)
    {
         ShowArea.x = Max_Map_Width - ShowArea.w;
 }


m_CamHandle->GetCamera(ShowArea);


Player Update(render)
m_XPos ist die velocity, also die X Koordinate die die bewegung in sich trägt.

C-/C++-Quelltext

1
2
    PlayRect.x=m_XPos-Cammi.x;
    PlayRect.y=m_YPos-Cammi.y;




Gruß Leri :)

TigerClaw25

unregistriert

16

10.05.2013, 16:03

Dazu hätte ich auch gleich eine Frage. Bringt es überhaupt etwas, Heikos Weltraumshooter um eine Tilemap zu erweitern oder ist es eher sinnvoll, Tiles direkt beim Start eines neuen Projektes zu verwenden? Dürfte bei Heikos Spiel aus dem Buch nicht wirklich schwer sein, aber der Code mpüsste dennoch an vielen Stellen angepasst werden ...

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

17

10.05.2013, 16:11

Eigentlich sollte man sich am Anfang eines Projektes um solche grundlegenden Dinge Gedanken machen. Natürlich kann es immer wieder dazu kommen dass man etwas ändern möchte/muss und so nachträglich Dinge eingebaut werden die am Anfang nicht geplant waren. Wenn du jedoch in das Spiel eine Tilemap einbaust, dann tust du das ja vermutlich eher aus Lernzwecken. Also warum nicht.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

TigerClaw25

unregistriert

18

10.05.2013, 16:14

Hmm, ich habe mich bisher kaum mit Tiles auseinandergsetzt, aber wenn ich das richtig verstanden habe, dann muss in der Framework.cpp die SDL_image eingebunden werden und der bisherige Code für den Hintergrund durch neuen Code ersetzt werden ...

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

19

10.05.2013, 16:20

TileMaps sind eine tolle Sache. Ich habe das Buch von Heiko selbst nicht gelesen und kann deswegen wenig zu dem Spaceshooter sagen. Aber eigentlich wäre ein Spaceshooter meiner Meinung nach kein Fall für TileMaps. Dort will man ja eigentlich einen scrollenden Weltraumhintergrund mit eher wenigen (statischen) Objekten auf dem Bildschirm. Setz doch einfach mal Google ein und informiere dich ein wenig zu dem Thema. Lohnen tut sich das sicher. Dann hast du vielleicht auch eine bessere Vorstellungen warum man solche Dinge überhaupt einsetzen kann. Bei Verständnisfragen gibt es dann ja hier das Forum.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

TigerClaw25

unregistriert

20

10.05.2013, 19:58

Hmm, eventuell waere ës hilfreiche, wenn ich ein Spiel ala Mario versuchen wuerde umzusetzen.

Da habe ich zum einen mit TileMaps zutun und natuerlich auch mit der Frage, wie ich Kollisionen zwischen Spieler und Umgebung umsetze, wenn ich beispielsweise auf eine Bruecke springe oder auf etwas anderes. Auf diese Frage habe ich naemlich noch keine Antwort. Kann ja schlecht eine Kollision fuer jedes Steinchen abrufen ...

Werbeanzeige