Autor Beitrag
brekkar0815
Hält's aus hier
Beiträge: 1



BeitragVerfasst: So 04.04.10 23:30 
Guten Abend C# Gemeinde,

ich habe ein nerviges Problem an dem ich schon Stunden rumexperimentiere und mir langsam der Gedultsfaden reizt. Zuerst einmal bin ich erst seit 1 Semester mit c# vertraut und deswegen noch ein Anfänger also seit nicht alzu Streng mit mir!

Also ich will C# für ein kleines Spiel missbrauchen, dass ungefähr wie Super Mario ablaufen soll. Dazu nutze ich Pictureboxen und gebe Ihnen Grafiken.
Ich benutze die Pfeiltasten zum Laufen und schiebe die PictureBox damit hin und her. Doch wenn ich dann einen gegenstand des es überqueren soll in den weg stelle ( berg zum draufhüpfen) bleibt er immer am berg.Left hängen. Ich kann also bestimmen das er nicht durchläuft und davor stehen bleibt, aber nicht das er drüber kommt. DA BRAUCH ICH EURE ERFAHRUNG.

Hier der Code: ( nur der Rechtslaufende, rest geht prima)

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
                if (keyData == Keys.Right)
                {
                    while (x < 1)
                    {
                        berg2.Left = (berg2.Left - 3);
                        if (Standortcheck.Left + Standortcheck.Width < berg1.Left | Standortcheck.Left >= berg1.Left + berg1.Width | Standortcheck.Top + Standortcheck.Height > berg1.Top && Standortcheck.Left <= berg1.Left + berg1.Width )
                        {
                            x++;
                            Standortcheck.Left = (Standortcheck.Left + 3);
                        }
                        else
                        {
                            x++;
                        }
                    }
                    x = 0;
                }


Kleine Erläuterung: Standortcheck = Spielfigur; berg1 = Hindernis;
Mit den ersten beiden "oder" Abfragen frage ich ob er weiter oder davor ist, wenn ja dann lauf. Aber mit der Dritten die eigtl. über den berg1 führen soll habe ich meine probleme.

Grafik hängt an.

Wärt mir echt eine GROßE HILFE.

Mit freundlichen Grüßen

brekkar0815

Moderiert von user profile iconKha: C#-Tags hinzugefügt
Einloggen, um Attachments anzusehen!
ThoMa
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46
Erhaltene Danke: 3



BeitragVerfasst: Mo 05.04.10 13:53 
Hallo,

verwende doch einfach die Rectangles zur Kollisionsabfrage und frage ab über Rectangle.Bounds.IntersectsWith(OtherRectangle). Da musst Du dann nichts selbst implementieren.

Ob Du allerdings mit Deinem Ansatz glücklich wirst, ist die andere Frage. Guck Dir doch mal XNA an. :-)

Grüße
ThoMa