Hallo, hätte mal ne Frage zu MonoGame:
Ich portiere grad mein "Windows Forms Spiel" in Monogame und mache mich gerade an die Kollision mit dem Rand.
Jetzt verwirrt mich aber MonoGames ein wenig:
Am Anfang hat es nicht geklappt da ich nicht wusste das Window.ClientBounds.X und Y nicht 0 sind, sondern die "Window Abmessung an sich". Dann habe ich es geändert.
Danach hat es zwar geklappt, aber mein Sprite ist an der rechten/unteren Ecke ein paar MM verschwunden.
Frage: Woher bekomme ich jetzt die exakten Abmasse von meinem GameWindow?
|
C#-Quelltext
|
1
2
|
windowWidth = this.Window.ClientBounds.X;
windowHeight = this.Window.ClientBounds.Y;
|
|
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
|
public void CheckBounds(int wR, int wB)
{
if (playerPos.X <= 0 && playerPos.Y >= 0)
{
playerPos.X = 0;
playerPos.Y = playerPos.Y;
}
if (playerPos.X >= 0 && playerPos.Y <= 0)
{
playerPos.X = playerPos.X;
playerPos.Y = 0;
}
if (playerPos.X < wR && playerPos.Y + playerSprite.Height >= wB)
{
playerPos.X = playerPos.X;
playerPos.Y = wB - playerSprite.Height;
}
if (playerPos.X + playerSprite.Width >= wR && playerPos.Y <= wB)
{
playerPos.X = wR - playerSprite.Width;
playerPos.Y = playerPos.Y;
}
}
|
Ich habe das jetzt erstmal alles so geschrieben um zu testen, kann mir aber nicht erklären was jetzt an diesen "Rechnungen" falsch sein soll.
Würde mich über hilfe freuen,
Gruß