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