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

1

21.10.2011, 20:33

C# XNA Spielfigur kann aus dem Rand raus?

Hallo ihr Spieleprogrammierer ich habe vor kurzem mit XNA Angefangen und bis jetzt ein Kleines Spiel auf die Beine Gestellt nur zwei sachen Kann ich nicht ..
  1. Figur so machen das sie nicht aus dem Rand rauskommt
  2. Das wenn die Figur z.B. Ein Anderes Bild berührt, das die Figur auf eine Andere Map kommt
Könntet ihr mir Vielleicht Helfen?

LG Xeno

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

2

21.10.2011, 20:51

ist ganz einfach. einfach die x- bzw y-koordinate der figur ändern sobald sie den rand erreicht.
so ala wenn x-koordinate > rand-koordinate dann x -= 10.

das geliche gilt mit für die berührung mim bild. wenn die spieler-koordinaten mit denen des bildes "kollidieren" dann kommt eben ne neue map

3

21.10.2011, 20:59

1.

C#-Quelltext

1
2
Position.X = MathHelper.Clamp(Position.X, 0,GraphicsDevice.Viewport.Width - texture.Width);
 Position.Y = MathHelper.Clamp(Position.Y, 0,GraphicsDevice.Viewport.Height - texture.Height);

2. Such mal nach rectangle + intersects


4

21.10.2011, 21:02

Hm okay &nd wie prüf ich jetzt wann der Kollidiert?

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

5

21.10.2011, 21:07

nunja, kollision is eig ne eigene sach. du hast aber .Intersects

so kannst du dir zb ne methode machen die dir ausgibt ob du mit dem objekt kollidierst oder nciht:

C#-Quelltext

1
2
3
4
public bool IsBoxColliding(Rectangle OtherBox)
{
   return BoundingBoxRect.Intersects(OtherBox);
}

6

21.10.2011, 21:10

C#-Quelltext

1
            if (spieler_rect.Intersects())            {                spieler_rect.X += 2;            } 


Nur was kommt nach Intersects in die ()?

PS: Wie guck ich wo der rand ist?

7

21.10.2011, 21:17

Okay habs nun So:

C#-Quelltext

1
2
3
4
5
6
7
8
            if(spieler_rect.X < 0) 
            {
                spieler_rect.X = 0;
            }
            if (spieler_rect.X + spieler.Width > graphics.PreferredBackBufferWidth)
            {
                spieler_rect.X = graphics.PreferredBackBufferWidth - spieler.Width;
            }

8

21.10.2011, 21:18

C#-Quelltext

1
            if (spieler_rect.Intersects())            {                spieler_rect.X += 2;            } 


Nur was kommt nach Intersects in die ()?


http://msdn.microsoft.com/en-us/library/…intersects.aspx

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

9

21.10.2011, 21:34

Xeno == Xenotack?
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

10

21.10.2011, 21:49

Xeno == Xenotack?
Höchstwahrscheinlich, oder: Brilliant deduction, Watson!

Werbeanzeige