ProfilProfil
 Registrieren
 Login
Bild der WocheBild der Woche

(von Backslider)
Kommentare (0)
****

Weitere
User onlineBenutzer online
Gäste online: 7
Mitglieder online: Keine
Registrierte Mitglieder: 2116
Neustes Mitglied: onkel_keks

Gitter Problem

Neue Antwort erstellen
 

 

Autor Nachricht
 
 
Siebenkeim
Member


Anmeldedatum: 09.04.2012
Beiträge: 32

Antworten mit Zitat
BeitragVerfasst am: 27.04.2012, 21:54    Titel: Gitter Problem

Hallo,
habe mal wieder ein Problem Embarassed
Ich wollte ein Gitter erstellen und wenn ich mit der Maus auf ein "Rechteck" komme soll sich dort ein Sprite erstellen.
Schreibe immer erst einen Code zum Testen sozusagen die Basis, das Problem ist das es bei mir garnicht oder erst sehr spät reagiert woran könnte es liegen?
Bin recht neu in XNA:


Code:

public class Grid
    {
        bool ifClicked = false;
        int tempRect = 0;
        private int screenWidthTile = 1020 / 40;
        private int screenHeightTile = 680 / 40;
        int mouseX;
        int mouseY;
        List<Rectangle> screenRect = new List<Rectangle>();



        public void LoadGrid()
        {
            int[,] screenArray = new int[screenHeightTile, screenWidthTile];
            for (int i = 0; i < screenHeightTile; i++)
            {
                for (int j = 0; j < screenWidthTile; j++)
                {
                    screenArray[i, j] = 0;
                    screenRect.Add(new Rectangle(j * 40, 0, 40, 40));
                }
            }
        }


        public void UpdateGrid()
        {
            mouseX = Mouse.GetState().X;
            mouseY = Mouse.GetState().Y;
            Rectangle mouseRect = new Rectangle(mouseX, mouseY, 3, 3);
            if (mouseRect.Intersects(screenRect[0]))
            {
                ifClicked = true;
            }
        }


        public void DrawGrid(SpriteBatch batch, Texture2D test)
        {
            if (ifClicked)
            {
                batch.Draw(test, screenRect[0], Color.White);
            }
        }
    }



Alles erstmal nur zum Testen ist auch noch unvollständig.

Ich danke schonmal für eure Hilfe.

EDIT: Das XNA Fenster befindet sich in einer WinForms habe gedacht liegt an denn Coords aber 0,0 ist genau dort wo es sein muss;
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


Eltarion
Member


Anmeldedatum: 25.12.2011
Beiträge: 15

Antworten mit Zitat
BeitragVerfasst am: 28.04.2012, 00:36    Titel:

-Wenn ich das richtig sehe, prüfst und zeichnest du immer nur das erste Element (Rechteck). Ist das so geplannt?

-Bekommst du Fehlermeldungen oder zeichnet er es einfach nicht?

-Ist test auch die richtige Texture.

Code:
        public void LoadGrid()
        {
            int[,] screenArray = new int[screenHeightTile, screenWidthTile];
            for (int i = 0; i < screenHeightTile; i++)
            {
                for (int j = 0; j < screenWidthTile; j++)
                {
                    screenArray[i, j] = 0;
                    screenRect.Add(new Rectangle(j * 40, 0, 40, 40));
                }
            }
        }


-Ist es geplant, dass du i (y-coord) nicht mit in die Rechtecke einbeziehst?
macht doch keinen sinn x mal die gleichen Rechtsecke zu erstellen.

-Schonmal durchgestept (debug+breakpoint)?



Es kann sein das ich einfach nur zu müde bin, aber mir fehlen da ein paar Informationen.
Sorry wenn ich mist rede, wollte nur Erste-Hilfe geben Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


Siebenkeim
Member


Anmeldedatum: 09.04.2012
Beiträge: 32

Antworten mit Zitat
BeitragVerfasst am: 28.04.2012, 10:12    Titel:

Zitat:

-Wenn ich das richtig sehe, prüfst und zeichnest du immer nur das erste Element (Rechteck). Ist das so geplannt?

Ja ist so geplant will einfach erstmal nur kugen ob es funktioniert aber wie schon gesagt er reagiert garnicht oder erst sehr spät

Zitat:

-Bekommst du Fehlermeldungen oder zeichnet er es einfach nicht?

Er zeichnet es einfach nicht oder viel zu spät 10-15sec

Zitat:

-Ist test auch die richtige Texture.

Test ist eine richtige Texture habe sie auch nur einfach mal gezeichnet um zu testen ob sie auch funktioniert

Zitat:

-Ist es geplant, dass du i (y-coord) nicht mit in die Rechtecke einbeziehst?
macht doch keinen sinn x mal die gleichen Rechtsecke zu erstellen.

i brauche ich erstmal nicht wenn ich es mit einbeziehen würde, würde er er es schräg runter zeichnen bzw. die Rectangles schräg erstellen
Die Rechtecke sind für das Gitter gut wenn ich ein großes Rechteck hätte würde ich ja einfach nur ein Gitterstück haben will aber mehrere und durch die Rechtecke kann ich mit Intersects
bei jedem nachkugen ob die Maus sie berührt bzw. anklickt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


Siebenkeim
Member


Anmeldedatum: 09.04.2012
Beiträge: 32

Antworten mit Zitat
BeitragVerfasst am: 28.04.2012, 10:26    Titel:

Ok habe nun herausgefunden woran es liegt.
Habe mir mit DrawString einfach mal die MausCoords anzeigen lassen und sehe das die Koordinaten durch die WinForm vollkommen anders sind.

Wie kriege ich hin das er nur die Koordinaten von dem XNA FEnster abliest?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


simsmaster
Member


Anmeldedatum: 05.08.2009
Beiträge: 1631
Wohnort: Langenhagen

Antworten mit Zitat
BeitragVerfasst am: 28.04.2012, 15:41    Titel:

Wenn ich mich richtig erinnere musste man Mouse.Handle auf das Handle der Oberfläche setzen, auf die du zeichnest.
_________________
Mein Blog - XNA FAQ
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen


Siebenkeim
Member


Anmeldedatum: 09.04.2012
Beiträge: 32

Antworten mit Zitat
BeitragVerfasst am: 28.04.2012, 16:41    Titel:

Danke dir simsmaster es hat funktioniert Very Happy
EDIT: Ok es ist ein neues Problem aufgetaucht wollte dafür nicht extra einen neuen Thread eröffnen.
Aus irgendeinem Grund werden bei mir alle Objekte mit spriteBatch in der Größe 51x56 gezeichnet anstatt wie ich sie halt gezeichnet habe in 40x40
Woran kann das liegen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


Siebenkeim
Member


Anmeldedatum: 09.04.2012
Beiträge: 32

Antworten mit Zitat
BeitragVerfasst am: 29.04.2012, 14:59    Titel:

Habe nun herausgefunden woran es liegt.
Mein Xna Fenster wird in einer pictureBox erstellt wird und wenn ich die Größe davon ändere werden die Bilder kleiner bzw. größer.

Wie kann ich das beheben? Das die bildern dennoch normal gezeichnet werden?

Habe jetzt 1020x 680 und wenn ich es kleiner stelle werden auch die Bilder kleiner will aber das sie auf die Größe nicht achten.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


simsmaster
Member


Anmeldedatum: 05.08.2009
Beiträge: 1631
Wohnort: Langenhagen

Antworten mit Zitat
BeitragVerfasst am: 29.04.2012, 17:29    Titel:

Größe des BackBuffers richtig eingestellt?

graphics.PrefferedBackBufferWidth/Height

http://xnafaq.niklas-rother.de/cont....eines-spiels-aendern.html
_________________
Mein Blog - XNA FAQ
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen


Siebenkeim
Member


Anmeldedatum: 09.04.2012
Beiträge: 32

Antworten mit Zitat
BeitragVerfasst am: 29.04.2012, 17:39    Titel:

Danke hat wiedermal funktioniert ich wusste wie man das einstellt bloß ich bin halt einfach nicht drauf gekommen Very Happy
Werde mir aufjedenfall diese Dinge merken wenn ich einen Level Editor mache^^
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


Beiträge der letzten Zeit anzeigen:   
 
Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de