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

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

11

15.05.2013, 13:13

Eben das. Es handelt sich hierbei um C# und nicht um C++. Da sieht man wieder mal wie wichtig es ist dass solche Informationen mit dazu geschrieben werden. Haben ja nicht alle die vorläufigen Threads verfolgt.
„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.“

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

12

15.05.2013, 14:02

Oh, verdammt. Ja gut, unter C# sieht das natürlich anders aus, da ist das vermutlich ein ValueType.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

De_Struktor

unregistriert

13

15.05.2013, 14:47

bin ratlos ...

es will nix klappen! :(

P.s ich hatte doch in dem vorherigen Thread bereits gesagt, das es sich um ein um einen Struct handelt, der ja ein Valuetype ist!!

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

14

15.05.2013, 14:52

Was weiß ich denn, was Du im vorherigen Thread erzählt hast? Ich bin froh, wenn ich abends noch weiß, wo ich wohne!
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

De_Struktor

unregistriert

15

15.05.2013, 14:56

ja, ok ist auch egal.

dennoch, ist das ein nerviges Problem :/

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

16

15.05.2013, 15:00

Vielleicht kannst Du Dein eigentliches Problem nochmal beschreiben. Also beschreiben was Du haben willst und was aktuell bei Deinem Code passiert.
Ich glaub' so richtig schlau ist bisher anhand Deiner Beschreibung nämlich noch niemand geworden. Und diesmal bitte auch auf Grammatik achten, die macht nämlich den Sinn einer Aussage schnell mal kaputt, wenn sie unsinnig ist.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

De_Struktor

unregistriert

17

15.05.2013, 15:12

Ok^^,

den Code poste ich aber nicht nochmal, bitte um Entschuldigung, nur ist echt Aufwand.

1. Problem

Momentan wird die Bombe nur an der linken oberen Kante erzeugt(gezeichnet).
Ich möchte aber, wie in Bomberman, sofern das jemand mal gespielt hat, das wenn ich die Leertaste drücke und sich zum Beispiel die Figur hier befindet:(Siehe
dann soll sich die Bombe an der Spielerposition befinden! Debugphoto)

und das passiert nicht, denn ich drücke Leertaste und dann passiert garnichts!

Die Bombe wird zwar gezeichnet an der Position: bomb_rect aber laut code, müsste sie immer an der Position gezeichnet werden, wo sich immer der Spieler befindet. Denn ich sage ja mit:

C#-Quelltext

1
2
3
4
bomb_rect = new Rectangle(player_Rect.X, player_Rect.Y, player_Rect.Width, player_Rect.Height); aus, das er immer an der Spielerposition zeichnen soll!
und mit.: spriteBatch.Draw(bomb_text, bomb_rect, Color.White); zeichne ich immer an der spielerposition?!

oder etwa nicht. Bitte, was mache ich denn so verkehrt...


Mfg

DeStruktor
»De_Struktor« hat folgendes Bild angehängt:
  • Debug_Photo.PNG

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »De_Struktor« (15.05.2013, 15:25)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

18

15.05.2013, 15:30

Nun ja, trotzdem haben wir zu wenig Code. Wir wissen z.B. nicht, woher "player_Rect" kommt. Vermutlich steht schon da totale Grütze drin. Ich kann mir auch irgendwie nicht so richtig vorstellen, dass die Bombe die selbe Höhe und Breite haben soll wie der Spieler. Ich meine, es kann schon sein, wenn alle Deine Sprites gleich groß sind, aber richtig sinnvoll finde ich das auf den ersten Blick nicht. Hat mit der Position aber nichts zu tun. Wie gesagt denke ich, dass das Rect Unfug enthält oder Du irgendwo anders nochmal was überschreibst. Ob Du es nun willst oder nicht, ohne Code kann Dir das niemand mit Sicherheit sagen. Hilfreich für Dich wäre es jedenfalls gewesen Du hättest mal mit dem Debugger die Werte angeschaut und wärst bei falschen Werten den Stack oder Deinen Ausführungspfad entlang gewandert. Das müssen wir ja nun scheinbar für Dich erledigen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

De_Struktor

unregistriert

19

15.05.2013, 15:32

Soll ich jetzt jede Klasse anzeigen???

Game1.cs :

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
 public class FrostBomber : Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;
        
        #region Datas for the Player 
        Texture2D p_Text;
        Rectangle player_Rect;
        #endregion

        #region Dats for the bomb
        Texture2D bomb_text;
        Rectangle bomb_rect;
        #endregion

        #region Datas for the Map
        Map Block_map;
        Texture2D Red_Block;
        Texture2D Tree_Block;
        Rectangle[] Red_Blocks = new Rectangle[216];
        Rectangle[] Tree_Blocks = new Rectangle[225];
        const int winWidth = 810;
        const int winHeight = 630;
        
        #endregion

        bool block = false;
        /// <summary>
        /// Dats for the Feature: Bomb
        /// </summary>
        public FrostBomber()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
        }
      
        protected override void Initialize()
        {
            graphics.PreferredBackBufferWidth = winWidth;
            graphics.PreferredBackBufferHeight = winHeight;
            IsMouseVisible = true;
            graphics.ApplyChanges();
         
            base.Initialize();
        }

        protected override void LoadContent()
        {
            // Map datas
            Red_Block = Content.Load<Texture2D>("red_Block");
            Tree_Block = Content.Load<Texture2D>("Tree_Block");
            // player datas
            player_Rect = new Rectangle(30, 30, 30, 30);
            p_Text = Content.Load<Texture2D>("playerpic");
            // Bomb datas
            bomb_text = Content.Load<Texture2D>("Bombe");
            bomb_rect = new Rectangle(player_Rect.X, player_Rect.Y, player_Rect.Width, player_Rect.Height);
            Block_map = new Map(bomb_text, bomb_rect, p_Text, player_Rect, Red_Block, Tree_Block, Red_Blocks, Tree_Blocks);

            spriteBatch = new SpriteBatch(GraphicsDevice);
            spriteBatch.GraphicsDevice.Clear(Color.White);
            Block_map.LoadConstblocks();
            Block_map.LoadBombableBlocks();
            base.LoadContent();
        }

        protected override void UnloadContent()
        {
            base.UnloadContent();
        }

        #region Test for looking whether these logic works

        protected override void Update(GameTime gameTime)
        {
            if (Keyboard.GetState().IsKeyUp(Keys.Space))
            {
                block = false;
            }
            else if (Keyboard.GetState().IsKeyDown(Keys.Space))
            {
                if (!block) 
                {
                    block = true;
                    if (bomb_rect == player_Rect)
                    {
                        bomb_rect.X += 30;
                    }
                }
            }
            Block_map.myPlayer.UpdatePlayer(Red_Blocks, Tree_Blocks);
        }
        #endregion

        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.White);
            spriteBatch.Begin();
            Block_map.myPlayer.Draw(spriteBatch);
            
            Block_map.Draw(spriteBatch);
            //Block_map.frostbomb.DrawBomb(spriteBatch);
 
            spriteBatch.Draw(bomb_text, bomb_rect, Color.White);
            
            spriteBatch.End();
            base.Draw(gameTime);
        }
    }
}
    #endregion

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

20

15.05.2013, 15:33

Nein, du kannst den Fehler gern auch selbst finden.

Edit:
Bitte verwende beim Schreiben den Quellcode-Modus, nicht den Editor. Sonst sieht Quellcode unlesbar aus.

Edit2:
Da passiert bei Space mal gar nichts von wegen Zuweisung. Du musst da schon das Rect neu erzeugen und zuweisen. Das alte Rect stimmt mit dem vom Spieler ja nicht mehr überein. Das Rect des Spielers (bzw. die Variable, die den Anfangszustand enthält) verändert sich ja nicht im Laufe des Spiels. Jedenfalls nicht in Deinem Code von da oben. Denn nirgends wird "player_Rect" verändert.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »BlueCobold« (15.05.2013, 15:42)


Werbeanzeige