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

De_Struktor

unregistriert

11

07.05.2013, 16:22

Zu allererst, ist es mir ein wenig peinlich das zu zugeben, da es doch ein Syntaktisches problem war :S ^^
Ich habe paar sehr viele Rectangles relativ gleichen namens und da kommt dann doch in Schwingungen, wenn man sich etwas verhaspelt, mit 1000 gleichen namen und ich habe jetzt auch unterschiedliche namen, werde ich mir jetzt auch richtig angewöhnen.

Und ich weiss wirklich, wie Vererbubg abläuft und wie man richtig vererbt, nur manchmal wenn mich ein Problem zu lange aufhällt, dann neige ich zu unsauberen Methoden und ja auch die gewöhne ich mir ab^^.


Und das habe ich mit dem Array gelöst:

C#-Quelltext

1
2
 private Rectangle[] Tree_rect = new Rectangle[216];
        private Rectangle[] Red_rect = new Rectangle[225];

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
public void UpdatePlayer(Rectangle[] Red_block, Rectangle[] Tree_block)
        {
            Red_rect = Red_block;
            Tree_rect = Tree_block;
          
            if (Keyboard.GetState().IsKeyUp(Keys.W))
            {
                active[0] = false;
            }
            if (Keyboard.GetState().IsKeyUp(Keys.A))
            {
                active[1] = false;
            }
            if (Keyboard.GetState().IsKeyUp(Keys.S))
            {
                active[2] = false;
            }
            if (Keyboard.GetState().IsKeyUp(Keys.D))
            {
                active[3] = false;
            }

            if (Keyboard.GetState().IsKeyDown(Keys.W))
            {
                if (!active[0])
                {
                    active[0] = true;
                    if (player_rect.Y >= 30)
                    {
                        player_rect.Y -= 30;
                    }
                }
            }
            else if (Keyboard.GetState().IsKeyDown(Keys.A))
            {
                if (!active[1])
                {
                    active[1] = true;
                    player_rect.X -= 30;
                }
            }
            else if (Keyboard.GetState().IsKeyDown(Keys.S))
            {
                if (!active[2])
                {
                    active[2] = true;
                    player_rect.Y += 30;
                }
            }
            else if (Keyboard.GetState().IsKeyDown(Keys.D))
            {
                if (!active[3])
                {
                    active[3] = true;

                    if (player_rect.X <= 810 - 70)
                    {
                        player_rect.X += 30;
                    }
                    for (int i = 0; i < 216; i++)
                    {
                        if (player_rect.Intersects(Red_block[i]))
                        {
                            player_rect.X -= Red_block[i].Width;
                        }
                    }
                    for (int a = 0; a < 225; a++)
                    {
                        if (player_rect.Intersects(Tree_block[a]))
                        {
                            player_rect.X -= Tree_block[a].Width;
                        }
                    }
                }
            }
        }


so funktioniert es auf jeden fall und die Parameter sind dann die Blockarrays aus der gameklasse die ich der Funktion übergebe.

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

12

07.05.2013, 16:53

Was ein schwachsinniger Code, Gratulation. Lern bitte erstmal was Variablen, Member, Funktionen und Parameter sind und wie man die benutzt bevor du nochmal behauptest, Vererbung zu verstehen.

De_Struktor

unregistriert

13

07.05.2013, 17:29

ganz ehrlich, von dir konstruktive kritik zu bekommen, ist so wahrscheinlich wie von einem Obdachlosen Geld auszuleihen.

Und die Vererbung hinsichtlich ihrer Konzeptidee, habe ich nach wie vor verstanden. Ich habe nicht behauptet, alles zu können, denn sonst würde ich nicht an einem 2D Bombermanspiel sitzen, aber ich beherrsche einigermaßen die theoretischen Inhalte.

Und das der Code nicht komplett sauber ist weiss ich auch, ich bin auch schon dabei den Code auszubessern, dennoch muss ich mir sowas nicht gefallen lassen. Lern dich mal endlich richtig auszudrücken, bevor du Menschen sagst, was sie so falsch machen ;)

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

14

07.05.2013, 17:44

Das war doch konstruktive Kritik O.o
Er hat dir doch gesagt, auf welchen Gebieten du noch Nachholbedarf hast...

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

15

07.05.2013, 17:56

Das war doch konstruktive Kritik O.o
Er hat dir doch gesagt, auf welchen Gebieten du noch Nachholbedarf hast...

Naja, er meckert wahrscheinlich eher über den aggressiven Unterton, als über die "konstruktive Kritik".
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

De_Struktor

unregistriert

16

07.05.2013, 17:59

muss man sich wirklich sowas gefallen lassen, ich habe ganz bestimmt keine probleme mit Funktionen, variablen etc...
Selbst wenn sie der ansicht ist, kann man das auch in einem normalen Ton erwähnen. Das war einfach pure Beleidigung.

ich find es schön, wie sie dabei unterstützt wird....

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

17

07.05.2013, 18:06

Er.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

18

07.05.2013, 18:22

Dein Problem (was du vermutlich noch nicht mal erkannt hast...) ist mit einer Instanz der Playerklasse auf die Leveldaten zuzugreifen. Dazu reichen die von mir genannten Mittel. Du hast stattdessen erst von Game die Klasse Frostbomber abgeleitet, und dann noch von Frostbomber die Klasse Player, wahrscheinlich einfach nur weil "Vererbung" sich irgendwie toll anhoert. Das war nicht nur voellig an deinem Problem vorbei, sondern wird wahrscheinlich nie an einer einzigen Stelle in deinem Programm sinnvoll genutzt werden koennen. Da du aber gleichzeitig noch behauptest, du haettest "Vererbung" verstanden ist IMHO eine tiefergehende Diskussion darueber mit dir momentan sinnlos...

De_Struktor

unregistriert

19

07.05.2013, 18:41

ich habe die Vererbung aus der Playerklasse rausgenommen, da ich wie gesagt, paar mal sinnlos vererbt hatte, gebe ich zu.
das habe ich dann auch rausgenommen. Und ich vererbe nicht iwie, das war ein einzelfall...

Und ich habe es auch für mich noch einfacher gelöst statt mit deiner aufwendigeren Methode...
Ich habe noch 2 andere Stellen, wo die Vererbung in meinem Code ihren Sinn gefunden hat... (es funktioniert)

Und mir bahnt sich schon ein Hintergedanke was deine Unfreundlichkeit aufweist, an!
Du reagierst nur wie ein Alkoholiker, weil ich deine Methode nicht benutzt habe :)

Und ich lerne grade noch den Umgang mit der Vererbung in grafischen Spielen (vorher nur Textadventurs) geschrieben und hier läuft das noch ein wenig anders. Wie 1000 mal gesagt, kann man auch vernünftig sich ausdrücken und du versuchst nur deine tiefe Arroganz zu begründen.

Diskussion ist hiermit beendet.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

20

07.05.2013, 19:56

Ja ich denke wir können jetzt hier wieder normal diskutieren.
Was aber Fakt ist, du hast den Unterschied von "Ist ein" und "Hat ein" noch nicht wirklich richtig verstanden, sonst würdest du sowas wie da nicht machen. Ich entwickel jetzt ja selbst schon ein paar Jahre und die anderen hier auch und uns allen ist bewusst dass das eine nicht aufwendiger als das andere ist. Es wird höchstens aufwendiger wenn man davon falschen Gebrauch macht. Und Bomberman ist eigentlich auch kein Projekt für einen Anfänger. Ich glaube das habe ich schon mal irgendwann erwähnt, aber gut. Wasw TGGC anspricht sind Punkte die du dir wirklich noch mal angucken solltest. Und wie schon gesagt die beiden Beziehungen "Ist" und "Hat" sind von essenzieller Bedeutung. Bitte wiederholen und beim nächsten mal fällt es dir dann leichter.
„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.“

Werbeanzeige