Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - justinbieber

Strony: [1]
1
C# / Odp: określenie pozycji z jakiejś klasy [XNA]
« dnia: Czerwiec 06, 2010, 21:04:47 »
ohh i jeszcze małe pytanie, aPocisk to tekstura która jest w klasie Statek.

W Initialize wpisuje:
aPocisk = new Statek();

tak samo jak jest wpisane
mStatekSprite = new Statek();


ale mam błąd że
Error   1   The name 'aPocisk' does not exist in the current context   C:\Users\Shak33\Desktop\GRA\GRA\GRA\Game1.cs   62   13   GRA

No chce go zainicjować to jak ma istnieć w tym kontekście? hmm
tutaj jest klasa Pocisk
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;

namespace GRA
{
    class Pocisk : Statek
    {
        const int MAX_DISTANCE = 800;
        public bool Visible = false;
        Vector2 mStartPosition;
        Vector2 mSpeed;
        Vector2 mDirection;
       
        public override void LoadContent(ContentManager theContentManager)
        {
            base.LoadContent(theContentManager, "Pocisk");
            Scale = 0.3f;
        }

        public override void Update(GameTime theGameTime)
        {
            if (Vector2.Distance(mStartPosition, Position) > MAX_DISTANCE)
            {
                Visible = false;
            }
            if (Visible == true)
            {
                base.Update(theGameTime, mSpeed, mDirection);
            }
        }

        public override void Draw(SpriteBatch theSpriteBatch)
        {
            if (Visible == true)
            {
                base.Draw(theSpriteBatch);
            }
        }

        public void Fire(Vector2 theStartPosition, Vector2 theSpeed, Vector2 theDirection)
        {
            Position = theStartPosition;
            mStartPosition = theStartPosition;
            mSpeed = theSpeed;
            mDirection = theDirection;
            Visible = true;
        }


    }
}

w niej nie ma tekstury a analogicznie patrząc w klasie Statek on tworzy nową teksture aPocisk do całego bodajże kontenera mPociski

2
C# / Odp: określenie pozycji z jakiejś klasy [XNA]
« dnia: Czerwiec 06, 2010, 20:36:16 »
o jezus! Dziękuje wam wszystkim za pomoc! :)

Teraz już analigocznie do tego zrobie tak z pociskiem yeah!

Dziękuje jeszcze raz wszystkim :)!

3
C# / Odp: określenie pozycji z jakiejś klasy [XNA]
« dnia: Czerwiec 06, 2010, 20:28:22 »
aaa no to ja to mam ;D!!! tylko myślałem że z position miałem to dać drugi raz...
spriteBatch.Begin();
           
            mBackgroundOne.Draw(this.spriteBatch);
            mBackgroundTwo.Draw(this.spriteBatch);
            mBackgroundThree.Draw(this.spriteBatch);
            mBackgroundFour.Draw(this.spriteBatch);
            mBackgroundFive.Draw(this.spriteBatch);
            mStatekSprite.Draw(this.spriteBatch);

            spriteBatch.Draw(mStatekSprite, mStatekSprite.Position, Color.White);
            foreach (Vector2 meteorPosition in meteorPositions)
                spriteBatch.Draw(meteorTexture, meteorPosition, Color.White);
           
            spriteBatch.End();

4
C# / Odp: określenie pozycji z jakiejś klasy [XNA]
« dnia: Czerwiec 06, 2010, 19:39:02 »
no tak nie może dokonać konwersji. Ale jest podpisany już mStatekSprite, więc nie rozumiem.
Wywołany z klasy Statek już wcześniej więc nie za bardzo rozumiem.

Ale też jest tak że jak wpisze samo position bez mStatekSprite.Position to wtedy nie wywołuje błędu dla pierwszego mStatekSprite czyli coś albo jest między tym kolizja albo zły parametr wczytuje

5
C# / Odp: określenie pozycji z jakiejś klasy [XNA]
« dnia: Czerwiec 06, 2010, 19:23:15 »
per pan.
Po prostu jestem nauczony kultury i  jak kogoś nie znam to nie wylatuje siema ziomek.

6
C# / Odp: określenie pozycji z jakiejś klasy [XNA]
« dnia: Czerwiec 06, 2010, 19:20:54 »
No tak tam już błędów nie ma ale teraz te dwa dotyczą tej linkijki z mStatekSprite.Position
Error   1   The best overloaded method match for 'Microsoft.Xna.Framework.Graphics.SpriteBatch.Draw(Microsoft.Xna.Framework.Graphics.Texture2D, Microsoft.Xna.Framework.Vector2, Microsoft.Xna.Framework.Graphics.Color)' has some invalid arguments   C:\Users\Shak33\Desktop\GRA\GRA\GRA\Game1.cs   230   13   GRA
Error   2   Argument '1': cannot convert from 'GRA.Statek' to 'Microsoft.Xna.Framework.Graphics.Texture2D'   C:\Users\Shak33\Desktop\GRA\GRA\GRA\Game1.cs   230   30   GRA


no to c# się uczę swoją drogą ale jestem laik :)




7
C# / Odp: określenie pozycji z jakiejś klasy [XNA]
« dnia: Czerwiec 06, 2010, 18:52:55 »
No zrobiłem ten mStatekSprite.Position.X i .Y ale nie rozumiem jak zrobić z tym błędem
Error   1   'GRA.Statek' does not contain a definition for 'Width' and no extension method 'Width' accepting a first argument of type 'GRA.Statek' could be found (are you missing a using directive or an assembly reference?)   C:\Users\Shak33\Desktop\GRA\GRA\GRA\Game1.cs   139   30   GRA
Error   2   'GRA.Statek' does not contain a definition for 'Height' and no extension method 'Height' accepting a first argument of type 'GRA.Statek' could be found (are you missing a using directive or an assembly reference?)   C:\Users\Shak33\Desktop\GRA\GRA\GRA\Game1.cs   139   51   GRA


i jeszcze mi się pokazuje ten:
Error   3   The name 'Position' does not exist in the current context   C:\Users\Shak33\Desktop\GRA\GRA\GRA\Game1.cs   230   45   GRA


2 pierwsze dotyczą tej linijki
Rectangle statekRectangle =
               new Rectangle((int)mStatekSprite.Position.X, (int)mStatekSprite.Position.Y,
               mStatekSprite.Width, mStatekSprite.Height);

a ten 3 dotyczy tego
spriteBatch.Draw(mStatekSprite, Position, Color.White)

wiem że myśli sobie pan że proszę aby ktoś mi to napisał ale to nie chodzi o to że ktoś po prostu nie rozumiem tego bo kolizji sam nie pisałem tylko chce ją podłączyć z tutoriala a ciężko troche :)

8
C# / Odp: określenie pozycji z jakiejś klasy [XNA]
« dnia: Czerwiec 06, 2010, 13:42:42 »
Aaaa i zapomniałem dodać że będzie tylko jeden statek i do niego się chciałem odnieść. Bo tylko nim będę latać. Czy ktoś może zna sensowne rozwiązanie tego wszystkiego?

9
C# / Odp: określenie pozycji z jakiejś klasy [XNA]
« dnia: Czerwiec 06, 2010, 06:45:21 »
no tak ja na tym sam z 6 dni siedziałem i już postanowiłem się spytać bo wszystko mi działało oprócz tej kolizji..
bo to taka prosta gierka do szkoły tylko że coś zrobiłem.

I szukałem właśnie tutaj pomocy ztym bo sam sobie w życiu bym nie dał rady i częściowo ją otrzymałem :)

10
C# / Odp: określenie pozycji z jakiejś klasy [XNA]
« dnia: Czerwiec 06, 2010, 02:45:59 »
to są błędy
Error   1   The name 'Position' does not exist in the current context   C:\Users\Shak33\Desktop\GRA\GRA\GRA\Game1.cs   138   35   GRA
Error   2   The name 'Position' does not exist in the current context   C:\Users\Shak33\Desktop\GRA\GRA\GRA\Game1.cs   138   52   GRA
Error   3   'GRA.Statek' does not contain a definition for 'Width' and no extension method 'Width' accepting a first argument of type 'GRA.Statek' could be found (are you missing a using directive or an assembly reference?)   C:\Users\Shak33\Desktop\GRA\GRA\GRA\Game1.cs   139   30   GRA
Error   4   'GRA.Statek' does not contain a definition for 'Height' and no extension method 'Height' accepting a first argument of type 'GRA.Statek' could be found (are you missing a using directive or an assembly reference?)   C:\Users\Shak33\Desktop\GRA\GRA\GRA\Game1.cs   139   51   GRA
Error   5   The name 'Position' does not exist in the current context   C:\Users\Shak33\Desktop\GRA\GRA\GRA\Game1.cs   230   45   GRA


to są błędy chodzi o to że on ma pobrać pozycję tego statku gdzie on aktualnie jest..
do tekstury wiem że jest mSpriteStatek jako tekstura ale jak wpisze mSpriteStatek.Width czy Height to już jest błąd ten co podałem powyżej

Z klasy sprite albo statek ma pobrać pozycję statku.

http://www.2shared.com/file/IC5WO_o6/RectangleCollision.html  -> a tutaj jest ten program z którego chce to skopiować
Jakby co moge ten mój programik tutaj też wkleić, jeżeli wtedy będzie państwu łatwiej.

11
C# / określenie pozycji z jakiejś klasy [XNA]
« dnia: Czerwiec 06, 2010, 01:02:02 »
Witam otóż teraz mam taki problem.
Musze wczytać z drugiej klasy mStatekTexture i Position ale nie wiem za bardzo jak ponieważ za każdy raz jak próbuje to mi wywala błąd to jest klasa główna.
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;

namespace GRA
{
    /// <summary>
    /// This is the main type for your game
    /// </summary>
    public class Game1 : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;
       
        Statek mStatekSprite;
        Sprite mBackgroundOne;
        Sprite mBackgroundTwo;
        Sprite mBackgroundThree;
        Sprite mBackgroundFour;
        Sprite mBackgroundFive;
        Texture2D meteorTexture;


        // Blocks
        List<Vector2> meteorPositions = new List<Vector2>();
        float meteorSpawnProbability = 0.01f;
        const int meteorFallSpeed = 2;

        Random random = new Random();

        // For when a collision is detected
        bool statekHit = false;

        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
        }

        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            // TODO: Add your initialization logic here
           
            mStatekSprite = new Statek();

            mBackgroundOne = new Sprite();
            mBackgroundOne.Scale = 1.0f;

            mBackgroundTwo = new Sprite();
            mBackgroundTwo.Scale = 1.0f;

            mBackgroundThree = new Sprite();
            mBackgroundThree.Scale = 1.0f;
           
            mBackgroundFour = new Sprite();
            mBackgroundFour.Scale = 1.0f;
           
            mBackgroundFive = new Sprite();
            mBackgroundFive.Scale = 1.0f;

            base.Initialize();
        }

        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);

            // TODO: use this.Content to load your game content here
            meteorTexture = Content.Load<Texture2D>("pocisk");

            mBackgroundOne.LoadContent(this.Content, "tlo1");
            mBackgroundOne.Position = new Vector2(0, 0);

            mBackgroundTwo.LoadContent(this.Content, "tlo2");
            mBackgroundTwo.Position = new Vector2(0, mBackgroundOne.Position.Y - mBackgroundOne.Size.Height);

            mBackgroundThree.LoadContent(this.Content, "tlo3");
            mBackgroundThree.Position = new Vector2(0, mBackgroundTwo.Position.Y - mBackgroundTwo.Size.Height);

            mBackgroundFour.LoadContent(this.Content, "tlo4");
            mBackgroundFour.Position = new Vector2(0, mBackgroundThree.Position.Y - mBackgroundThree.Size.Height);
           
            mBackgroundFive.LoadContent(this.Content, "tlo5");
            mBackgroundFive.Position = new Vector2(0, mBackgroundFour.Position.Y - mBackgroundFour.Size.Height);

            mStatekSprite.LoadContent(this.Content); 
        }

        /// <summary>
        /// UnloadContent will be called once per game and is the place to unload
        /// all content.
        /// </summary>
        protected override void UnloadContent()
        {
            // TODO: Unload any non ContentManager content here
        }

        /// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Update(GameTime gameTime)
        {
            // Allows the game to exit
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
                this.Exit();

            // TODO: Add your update logic here
            if (random.NextDouble() < meteorSpawnProbability)
            {
                float x = (float)random.NextDouble() *
                    (Window.ClientBounds.Width - meteorTexture.Width);
                meteorPositions.Add(new Vector2(x, -meteorTexture.Height));
            }

            Rectangle statekRectangle =
                new Rectangle((int)Position.X, (int)Position.Y,
                mStatekSprite.Width, mStatekSprite.Height);

            statekHit = false;
            for (int i = 0; i < meteorPositions.Count; i++)
            {
                // Animate this block falling
                meteorPositions[i] =
                    new Vector2(meteorPositions[i].X,
                                meteorPositions[i].Y + meteorFallSpeed);

                // Get the bounding rectangle of this block
                Rectangle meteorRectangle =
                    new Rectangle((int)meteorPositions[i].X, (int)meteorPositions[i].Y,
                    meteorTexture.Width, meteorTexture.Height);

                // Check collision with person
                if (statekRectangle.Intersects(meteorRectangle))
                    statekHit = true;

                // Remove this block if it have fallen off the screen
                if (meteorPositions[i].Y > Window.ClientBounds.Height)
                {
                    meteorPositions.RemoveAt(i);

                    // When removing a block, the next block will have the same index
                    // as the current block. Decrement i to prevent skipping a block.
                    i--;
                }
            }


            if (mBackgroundOne.Position.Y < -mBackgroundOne.Size.Height)
            {
                mBackgroundOne.Position.Y = mBackgroundFive.Position.Y - mBackgroundFive.Size.Height;
            }

            if (mBackgroundTwo.Position.Y < -mBackgroundTwo.Size.Height)
            {
                mBackgroundTwo.Position.Y = mBackgroundOne.Position.Y - mBackgroundOne.Size.Height;
            }

            if (mBackgroundThree.Position.Y < -mBackgroundThree.Size.Height)
            {
                mBackgroundThree.Position.Y = mBackgroundTwo.Position.Y - mBackgroundTwo.Size.Height;
            }

            if (mBackgroundFour.Position.Y < -mBackgroundFour.Size.Height)
            {
                mBackgroundFour.Position.Y = mBackgroundThree.Position.Y - mBackgroundThree.Size.Height;
            }

            if (mBackgroundFive.Position.Y < -mBackgroundFive.Size.Height)
            {
                mBackgroundFive.Position.Y = mBackgroundFour.Position.Y - mBackgroundFour.Size.Height;
            }
           
            Vector2 aDirection = new Vector2(0, 1);
            Vector2 aSpeed = new Vector2(0, 20);
           
            mBackgroundOne.Position += aDirection * aSpeed * (float)gameTime.ElapsedGameTime.TotalSeconds;
            mBackgroundTwo.Position += aDirection * aSpeed * (float)gameTime.ElapsedGameTime.TotalSeconds;
            mBackgroundThree.Position += aDirection * aSpeed * (float)gameTime.ElapsedGameTime.TotalSeconds;
            mBackgroundFour.Position += aDirection * aSpeed * (float)gameTime.ElapsedGameTime.TotalSeconds;
            mBackgroundFive.Position += aDirection * aSpeed * (float)gameTime.ElapsedGameTime.TotalSeconds;
           
            mStatekSprite.Update(gameTime);
            base.Update(gameTime);
        }

        /// <summary>
        /// This is called when the game should draw itself.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);

            if (statekHit)
            {
               
            }
            // TODO: Add your drawing code here
            spriteBatch.Begin();
           
            mBackgroundOne.Draw(this.spriteBatch);
            mBackgroundTwo.Draw(this.spriteBatch);
            mBackgroundThree.Draw(this.spriteBatch);
            mBackgroundFour.Draw(this.spriteBatch);
            mBackgroundFive.Draw(this.spriteBatch);
            mStatekSprite.Draw(this.spriteBatch);

            spriteBatch.Draw(mStatekSprite, Position, Color.White);
            foreach (Vector2 meteorPosition in meteorPositions)
                spriteBatch.Draw(meteorTexture, meteorPosition, Color.White);
           
            spriteBatch.End();

            base.Draw(gameTime);
        }
    }
}

 a tutaj klasa Sprite
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;

namespace GRA
{
    class Sprite
    {
        //Obecna pozycja Sprite
        public Vector2 Position = new Vector2(1, 110);

        //Obiekt pobierany kiedy jest rysowany Sprite
        public  Texture2D mSpriteTexture;

        //Rozmiar Sprite
        public Rectangle Size;

        public string AssetName;

        //Skala Sprite
        private float mScale = 1.0f;

        public float Scale       
        {           
            get { return mScale; }           
            set           
            {               
                mScale = value;               
                //Recalculate the Size of the Sprite with the new scale               
                Size = new Rectangle(0, 0, (int)(Source.Width * Scale), (int)(Source.Height * Scale));           
            }       
        }

        Rectangle mSource;
        public Rectangle Source
        {
            get { return mSource; }
            set
            {
                mSource = value;
                Size = new Rectangle(0, 0, (int)(mSource.Width * Scale), (int)(mSource.Height * Scale));
            }
        }

        public void LoadContent(ContentManager theContentManager, string theAssetName)
        {
            mSpriteTexture = theContentManager.Load<Texture2D>(theAssetName);
            AssetName = theAssetName;
            Source = new Rectangle(0, 0, mSpriteTexture.Width, mSpriteTexture.Height);
            Size = new Rectangle(0, 0, (int)(mSpriteTexture.Width * Scale), (int)(mSpriteTexture.Height * Scale));
        }

        public virtual void Draw(SpriteBatch theSpriteBatch)
        {
            theSpriteBatch.Draw(mSpriteTexture, Position, Source, Color.White, 0.0f, Vector2.Zero, Scale, SpriteEffects.None, 0);
        }

        public void Update(GameTime theGameTime, Vector2 theSpeed, Vector2 theDirection)
        {
            Position += theDirection * theSpeed * (float)theGameTime.ElapsedGameTime.TotalSeconds;
        }
    }
}
i wrazie czego klasa statku
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Storage;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;

namespace GRA
{
    class Statek : Sprite
    {
        const string STATEK_ASSETNAME = "statek";
        const int START_POSITION_X = 125;
        const int START_POSITION_Y = 245;
        const int STATEK_SPEED = 160;
        const int MOVE_UP = -1;
        const int MOVE_DOWN = 1;
        const int MOVE_LEFT = -1;
        const int MOVE_RIGHT = 1;
       
        List<Pocisk> mPociski = new List<Pocisk>();
        ContentManager mContentManager;
        enum State
        {
            Walking
        }       
        State mCurrentState = State.Walking;
       
        Vector2 mDirection = Vector2.Zero;
        Vector2 mSpeed = Vector2.Zero;
       
        KeyboardState mPreviousKeyboardState;

        public virtual void LoadContent(ContentManager theContentManager)
        {
            mContentManager = theContentManager;
           
            foreach (Pocisk aPocisk in mPociski)
            {
                aPocisk.LoadContent(theContentManager);
            }

            Position = new Vector2(START_POSITION_X, START_POSITION_Y);
            base.LoadContent(theContentManager, STATEK_ASSETNAME);
            Source = new Rectangle(0, 0, Source.Width, 90);
        }

        private void UpdateMovement(KeyboardState aCurrentKeyboardState)
        {
            if (mCurrentState == State.Walking)
            {
                mSpeed = Vector2.Zero;
                mDirection = Vector2.Zero;
               
                if (aCurrentKeyboardState.IsKeyDown(Keys.Left) == true)
                {
                    mSpeed.X = STATEK_SPEED;
                    mDirection.X = MOVE_LEFT;
                }
               
                else if (aCurrentKeyboardState.IsKeyDown(Keys.Right) == true)
                {
                    mSpeed.X = STATEK_SPEED;
                    mDirection.X = MOVE_RIGHT;
                }
               
                if (aCurrentKeyboardState.IsKeyDown(Keys.Up) == true)
                {
                    mSpeed.Y = STATEK_SPEED;
                    mDirection.Y = MOVE_UP;
                }
               
                else if (aCurrentKeyboardState.IsKeyDown(Keys.Down) == true)
                {
                    mSpeed.Y = STATEK_SPEED;
                    mDirection.Y = MOVE_DOWN;
                }
            }
        }

        public virtual void Update(GameTime theGameTime)
        {
            KeyboardState aCurrentKeyboardState = Keyboard.GetState();
            UpdateMovement(aCurrentKeyboardState);
            UpdatePocisk(theGameTime, aCurrentKeyboardState);
            mPreviousKeyboardState = aCurrentKeyboardState;
            base.Update(theGameTime, mSpeed, mDirection);
        }

        private void UpdatePocisk(GameTime theGameTime, KeyboardState aCurrentKeyboardState)
        {
            foreach (Pocisk aPocisk in mPociski)
            {
                aPocisk.Update(theGameTime);
            }
           
            if (aCurrentKeyboardState.IsKeyDown(Keys.RightControl) == true && mPreviousKeyboardState.IsKeyDown(Keys.RightControl) == false)
            {
                ShootPocisk();
            }
        }

        private void ShootPocisk()
        {
            if (mCurrentState == State.Walking)
            {
                bool aCreateNew = true;
                foreach (Pocisk aPocisk in mPociski)
                {
                    if (aPocisk.Visible == false)
                    {
                        aCreateNew = false;
                        aPocisk.Fire(Position + new Vector2(Size.Width / 2, Size.Height / 2), new Vector2(0, 200), new Vector2(0, -1));
                        break;
                    }
                }
                if (aCreateNew == true)
                {
                    Pocisk aPocisk = new Pocisk();
                    aPocisk.LoadContent(mContentManager);
                    aPocisk.Fire(Position + new Vector2(Size.Width / 2, Size.Height / 2), new Vector2(0, 200), new Vector2(0, -1));
                    mPociski.Add(aPocisk);
                }
            }
        }

        public override void Draw(SpriteBatch theSpriteBatch)
        {
            foreach (Pocisk aPocisk in mPociski)
            {
                aPocisk.Draw(theSpriteBatch);
            }
           
            base.Draw(theSpriteBatch); }
    }
}
po prostu nie mam pomysłu jak to skleić z tym Position i mStatekTexture...

Jeśli będzie potrzeba to moge podać link do paczki z tym tutorialem odnośnie tego tworzenia się obiektów i kolizji bo obiekty mi się tworzą ale brakuje mi tego Position i mStatekSprite do kolizji.

12
C# / Odp: Tworzenie się obiektów [XNA]
« dnia: Czerwiec 05, 2010, 20:31:34 »
tak tak właśnie przed chwilą to zauważyłem ;D ale także bardzo dziękuje, bo cały czas siedze nad tymi kodami i już mi się troszke miesza. Lecz dalej jest błąd z Window, tego się natomiast w ogóle nie moge doszukać w tym oryginalnym programie...

13
C# / Tworzenie się obiektów [XNA]
« dnia: Czerwiec 05, 2010, 20:12:15 »
Witam, mam taki mały problem.
Pobrałem plik kolizji i samo się tworzenia obiektów aby móc go podpiąć pod mój program.
I niby zrobiłem klase z tworzeniem się obiektów ale cały czas są błędy. Wszystko jest tak samo tylko że tam jest w game.cs wszystko w jednej klasie a ja chce to przenieść do nowej klasy i tak samo kolizja ma być w nowej klasie. No ale błędy są.

http://www.2shared.com/file/IC5WO_o6/RectangleCollision.html  -> a tutaj jest ten program z którego chce to skopiować

Ogólnie po prostu tylko nie wiem czemu te tworzenie się obiektów nie działa, z podpięciem kolizji sobie poradzę.

Tutaj jest klasa Meteory
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Storage;

namespace GRA
{
    class Meteory : Statek
    {
        GraphicsDeviceManager graphics;
        Texture2D meteorTexture;
        SpriteBatch theSpriteBatch;

        List<Vector2> meteorPositions = new List<Vector2>();
        float meteorSpawnProbability = 0.01f;
        const int meteorFallSpeed = 2;

        Random random = new Random();


        public override void LoadContent(ContentManager theContentManager)
        {
            base.LoadContent(theContentManager, "statek");
            theSpriteBatch = new SpriteBatch(graphics.GraphicsDevice);
        }

        public override void Update(GameTime theGameTime)
        {


            for (int i = 0; i < meteorPositions.Count; i++)
            {
                meteorPositions[i] = new Vector2(meteorPositions[i].X,
                        meteorPositions[i].Y + meteorFallSpeed);

                Rectangle meteorRectangle = new Rectangle((int)meteorPositions[i].X, (int)meteorPositions[i].Y,
                        meteorTexture.Width, meteorTexture.Height);

                if (random.NextDouble() < meteorSpawnProbability)
                {
                    float x = (float)random.NextDouble() *
                        (Window.ClientBounds.Width - meteorTexture.Width);
                    meteorPositions.Add(new Vector2(x, -meteorTexture.Height));
                }
            }
            base.Update(theGameTime);

        }

        public override void Draw(SpriteBatch theSpriteBatch)
        {
          foreach (Vector2 meteorPosition in meteorPositions)
                theSpriteBatch.Draw(meteorTexture, meteorPosition, Color.White);

            base.Draw(theSpriteBatch);
        }
    }
}
błędy są takie:
Error   1   The name 'Window' does not exist in the current context   C:\Users\Shak33\Documents\Visual Studio 2008\Projects\GRA\GRA\Meteory.cs   36   22   GRA


Nie rozumiem za bardzo o co chodzi ???

//edit
naprawiłem to z zbyt wcześnie zamknełem for'a i działa ale i tak przy kompilacji jest dalej błąd z window tego się w ogóle nie moge doszukać w tym programie.

Strony: [1]