• Advertisement

Joker123

Member
  • Content count

    11
  • Joined

  • Last visited

Community Reputation

115 Neutral

About Joker123

  • Rank
    Member
  1. I created an Application ID und an Ad unit ID in the Pubcenter, but I don't know how to use them in my XNA project. How can I use ads in a Windows Phone game?
  2. I don't know how to use this formula in my code: On = On-1 + ?(In – On-1) How can I use the formula or a similar formula in my code?
  3. I want to use the Windows Phone sensors to move a ball in a Windows Phone game. I tried to move the ball with the accelerometer, but the ball doesn't move correctly if I tilt my Windows Phone device(Lumia 920) in a direction.  For example, if I tilt the device to the left, the ball isn't moving to the left, instead the ball moves very strange. I don't know what I could change in my code so that the ball moves correctly. What is wrong? Why is the ball not moving in the right direction when I tilt my Windows Phone device? What should I change so that the ball moves correctly if I tilt the Windows Phone device? public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; Motion motion; Texture2D Ball; Vector2 BallPos = new Vector2(400, 300); Vector2 BallVelocity; void motion_CurrentValueChanged(object sender, SensorReadingEventArgs<MotionReading> e) { UpdateUI(e.SensorReading); } private void UpdateUI(MotionReading e) { float accelerometerX = e.DeviceAcceleration.X; float accelerometerY = e.DeviceAcceleration.Y; speed.X += accelReading.X; speed.Y += -accelReading.Y; BallPos.X += speed.X *0.05f; BallPos.Y += speed.Y *0.05f; } public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; TargetElapsedTime = TimeSpan.FromTicks(333333); InactiveSleepTime = TimeSpan.FromSeconds(1); graphics.IsFullScreen = true; } protected override void Initialize() { if (Motion.IsSupported) { motion = new Motion(); motion.TimeBetweenUpdates = TimeSpan.FromMilliseconds(20); motion.CurrentValueChanged += new EventHandler<SensorReadingEventArgs<MotionReading>>(motion_CurrentValueChanged); motion.Start(); } base.Initialize(); } protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); Message = Content.Load<SpriteFont>("Arial"); Ball = Content.Load<Texture2D>("ballbig"); } protected override void Update(GameTime gameTime) { base.Update(gameTime); } protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); spriteBatch.Begin(); spriteBatch.Draw(Ball, BallPos, null, Color.White, 0, new Vector2(Ball.Width/2,Ball.Height/2), 1f, SpriteEffects.None,1); spriteBatch.End(); base.Draw(gameTime); } }
  4. I wrote a class to play my animations. But it just works if I play the entire animation. For example: If my spritesheet has 3 pictures, I call the Animation class like that to play the entire animation : Player_Animation = new Animation(new List<Rectangle>(3), Content.Load<Texture2D>("walking"), TimeSpan.FromSeconds(1), Animation.Sequences.forwards, this, 0, 3);   That works. But on the other hand: If my spritesheet has 3 pictures, and if I just want the first 2 pictures of the animation, I call the Animation class like this to play only the first 2 pictures of the animation: Player_Animation = new Animation(new List<Rectangle>(3), Content.Load<Texture2D>("walking"), TimeSpan.FromSeconds(1), Animation.Sequences.forwards, this, 0, 2);   That doesn't work. I always get that "ArgumentOutOfRangeException was unhandled" error message in the following line(it's the last line of the Animation class): batch.Draw(Texture, new Rectangle((int)PositionX, (int)PositionY, Texture.Width / SourceRects.Capacity, Texture.Height), SourceRects[_animIndex], Color.White,0,new Vector2(Texture.Width/2, Texture.Height/2),Flip,1);     What is wrong? Why can't I play an interval of the animation without getting that error message? Here's my Animation class: public class Animation { public SpriteEffects Flip; private Game1 game1; private int _animIndex, numberofsourceRects, framewidth, frameheight; private TimeSpan PassedTime; private List<Rectangle> SourceRects; private Texture2D Texture; private TimeSpan Duration; private Sequences Sequence; public enum Sequences { forwards, backwards, forwards_backwards, backwards_forwards } private void forwards(List<Rectangle> sourceRects, int framewidth, int frameheight, int start, int end) { numberofsourceRects = end; for (int i = start; i < numberofsourceRects; i++) sourceRects.Add(new Rectangle(i * framewidth, 0, framewidth, frameheight)); } private void backwards(List<Rectangle> sourceRects, int framewidth, int frameheight, int start, int end) { numberofsourceRects = end; for (int i = start; i < numberofsourceRects; i++) sourceRects.Add(new Rectangle((numberofsourceRects - 1 - i) * framewidth, 0, framewidth, frameheight)); } private void forwards_backwards(List<Rectangle> sourceRects, int framewidth, int frameheight, int start, int end) { numberofsourceRects = end; for (int i = start; i < numberofsourceRects; i++) sourceRects.Add(new Rectangle(i * framewidth, 0, framewidth, frameheight)); for (int i = start; i < numberofsourceRects; i++) sourceRects.Add(new Rectangle((numberofsourceRects - 1 - i) * framewidth, 0, framewidth, frameheight)); } private void backwards_forwards(List<Rectangle> sourceRects, int framewidth, int frameheight, int start, int end) { numberofsourceRects = end; for (int i = start; i < numberofsourceRects; i++) sourceRects.Add(new Rectangle((numberofsourceRects - 1 - i) * framewidth, 0, framewidth, frameheight)); for (int i = start; i < numberofsourceRects; i++) sourceRects.Add(new Rectangle(i * framewidth, 0, framewidth, frameheight)); } public Animation(List<Rectangle> sourceRects, Texture2D texture, TimeSpan duration, Sequences sequences, Game1 game, int start_interval, int end_interval) { game1 = game; numberofsourceRects = sourceRects.Capacity; framewidth = texture.Width / numberofsourceRects; frameheight = texture.Height; switch (sequences) { case Sequences.forwards: { forwards(sourceRects,framewidth,frameheight, start_interval, end_interval); break; } case Sequences.backwards: { backwards(sourceRects, framewidth, frameheight, start_interval, end_interval); break; } case Sequences.forwards_backwards: { forwards_backwards(sourceRects, framewidth, frameheight, start_interval, end_interval); break; } case Sequences.backwards_forwards: { backwards_forwards(sourceRects, framewidth, frameheight, start_interval, end_interval); break; } } SourceRects = sourceRects; Texture = texture; Duration = duration; Sequence = sequences; } public void Update(GameTime dt) { PassedTime += dt.ElapsedGameTime; if (PassedTime > Duration) { PassedTime -= Duration; } var percent = PassedTime.TotalSeconds / Duration.TotalSeconds; _animIndex = (int)Math.Round(percent * (SourceRects.Capacity -1)); } public void Draw(SpriteBatch batch, float PositionX, float PositionY) { numberofsourceRects = SourceRects.Capacity /2; if ((Sequence == Sequences.forwards_backwards) || (Sequence == Sequences.backwards_forwards)) batch.Draw(Texture, new Rectangle((int)PositionX, (int)PositionY, Texture.Width / numberofsourceRects, Texture.Height), SourceRects[_animIndex], Color.White,0,new Vector2(Texture.Width/2, Texture.Height/2),Flip,1); else batch.Draw(Texture, new Rectangle((int)PositionX, (int)PositionY, Texture.Width / SourceRects.Capacity, Texture.Height), SourceRects[_animIndex], Color.White,0,new Vector2(Texture.Width/2, Texture.Height/2),Flip,1); } }    
  5. How to save an integer variable to an XML file?

    I tried this tutorial: [url="http://wellroundedgeek.com/post/2011/01/25/Simple-XNA-Cross-Platform-Settings-Manager.aspx"]http://wellroundedge...gs-Manager.aspx[/url] But I have some difficulties. The file "settings.xml" isn't getting saved. I tried it on Windows 7 but I couldn't find the file[img]http://public.gamedev.net//public/style_emoticons/default/sad.png[/img] Why isn't this working? [CODE] protected override void Initialize() { SettingsManager.LoadSettings(); base.Initialize(); } protected override void Update(GameTime gameTime) { KeyboardState kbState = Keyboard.GetState(); if (kbState.IsKeyDown(Keys.A)) SettingsManager.Settings.HasRunOnce = false; if (SettingsManager.Settings.HasRunOnce == false) SettingsManager.SaveSettings(); base.Update(gameTime); } [/CODE]
  6. I know how to read content from an XML file , but I don't know how to write something into it[img]http://public.gamedev.net//public/style_emoticons/default/sad.png[/img] For example, I read an integer variable from an XML file and modify it. After modifying, I want to save the integer variable to the same XML file. The old integer value must be replaced with the new value. My game runs on Windows 7. I load the XML file with this code: [CODE] List<Gamescore> scorexml = new List<Gamescore>(); protected override void LoadContent() { scorexml = Content.Load<List<Gamescore>>("Score"); foreach (Gamescore score in scorexml) { score.Load(Content); } } [/CODE] [CODE] public class Gamescore { int score; public int Score { get { return score; } set { score = value; } }[/CODE]
  7. Problem solved. I added this in the LoadContent() of Game1: [CODE] foreach(Sprite sprite in sprites) { sprite.Load(Content); } [/CODE]
  8. I get the error message in this line : [CODE]batch.Draw( texture, position, null, Color.White, rotation, Vector2.Zero, scale, SpriteEffects.None, 0f);[/CODE] I changed the line [CODE]texture = content.Load<Texture2D>(textureAsset);[/CODE] to [CODE]texture = content.Load<Texture2D>("light");[/CODE] but it changed nothing. Always the same error message. [CODE] + Color.White {R:255 G:255 B:255 A:255} Microsoft.Xna.Framework.Color + Vector2.Zero {X:0 Y:0} Microsoft.Xna.Framework.Vector2 + batch {Microsoft.Xna.Framework.Graphics.SpriteBatch} Microsoft.Xna.Framework.Graphics.SpriteBatch + position {X:100 Y:100} Microsoft.Xna.Framework.Vector2 rotation 0.0 float + scale {X:0,1 Y:0,1} Microsoft.Xna.Framework.Vector2 texture null Microsoft.Xna.Framework.Graphics.Texture2D + this {SharedContent.Sprite} SharedContent.Sprite [/CODE]
  9. TextureAsset is set to "light", but texture is always null. Here is the file. http://depositfiles.com/files/kj4an4ef7
  10. The variable texture is always null, but I don't know what to change in the code[img]http://public.gamedev.net//public/style_emoticons/default/sad.png[/img] I can upload my project if that would be easier for you.
  11. I have written a class to load an XML file but I always get this error message: ArgumentNullException was unhandled This method does not accept null for this parameter. Parameter name: texture What is wrong in the Sprite class? Here is the entire code of Game1 and Sprite class(where I load the XML file): [CODE] namespace WindowsGame16 { public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; Texture2D licht; List<Sprite> sprites = new List<Sprite>(); public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; } protected override void Initialize() { base.Initialize(); } protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); sprites = Content.Load<List<Sprite>>("Levelinf"); } protected override void UnloadContent() { } protected override void Update(GameTime gameTime) { base.Update(gameTime); } protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); spriteBatch.Begin(); foreach (Sprite sprite in sprites) sprite.Draw(spriteBatch); spriteBatch.End(); base.Draw(gameTime); } } }[/CODE] [CODE] namespace SharedContent { public class Sprite { Vector2 position; float rotation; Vector2 scale; string textureAsset; Texture2D texture; public Vector2 Position { get { return position; } set { position = value; } } public float Rotation { get { return rotation; } set { rotation = value; } } public Vector2 Scale { get { return scale; } set { scale = value; } } public string TextureAsset { get { return textureAsset; } set { textureAsset = value; } } [ContentSerializerIgnore] public Texture2D Texture { get { return texture; } } public void Load(ContentManager content) { texture = content.Load<Texture2D>(textureAsset); } public void Draw(SpriteBatch batch) { batch.Draw( texture, position, null, Color.White, rotation, Vector2.Zero, scale, SpriteEffects.None, 0f); } } }[/CODE] And my XML file: [CODE] <?xml version="1.0" encoding="utf-8" ?> <XnaContent> <Asset Type="System.Collections.Generic.List[SharedContent.Sprite]"> <Item> <Position>100 100</Position> <Rotation>0</Rotation> <Scale>.1 .1</Scale> <TextureAsset>light</TextureAsset> </Item> <Item> <Position>200 100</Position> <Rotation>0</Rotation> <Scale>.1 .1</Scale> <TextureAsset>light</TextureAsset> </Item> <Item> <Position>400 100</Position> <Rotation>0</Rotation> <Scale>.1 .1</Scale> <TextureAsset>light</TextureAsset> </Item> </Asset> </XnaContent>[/CODE] WebRep currentVote noRating noWeight
  • Advertisement