Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 19:32

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Xna Code 2d steuerung

Discussion on Xna Code 2d steuerung within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
{:€P^P_}'s Avatar
 
elite*gold: 0
Join Date: May 2011
Posts: 11
Received Thanks: 4
Question Xna Code 2d steuerung

Hi Leute ich breuchte mal etwas hilfe bei der steuerung meines Minigames.
Ich wollte nur ein 2d Game mit den steuerungseigenschaften von
z.B. DarkOrbit oder Spore in der Zellphase schreiben wobei ich dann auf das eigentliche Problen gestoßen bin. Und zwar nimt mein Avatar nicht den schnellsten weg zur maus sondern eher so : " [Avatarkoordinaten 0,0 Mauskoordinaten 10,20] { speedX = 1 speedY = 1 } Avatar wandert erst bis 10,10 dan bis 10,20 dadurch endsteht ein dooofer Knick "
Den eigentlichen Fehler habe ich auch schon gefunden aber ich finde keine Lösung . Meine lösungsformel die ich iergentwie nicht umsetzen konnte sah so aus : " [Avatarkoordinaten 0(y),0(x) Mauskoordinaten 10(y),20(x)]
{speedX = 1 * ( x / y ) = speedX = 2 speedY = 1 * ( y / x) = speedY = 1 }
Avatar wandert gleich bis 10,20.

Hir mein Code :
Code:
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;

namespace WindowsGame1
{

    public class Game1 : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;

        Texture2D Map,avatar,gui_cursor;   // den gui_cursor habe ich aus einem anderen Spiel geklaut :D
        Rectangle map_rec, avatar_rec, gui_cursor_rec, maus_rec;
        int x,y;

        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
            this.Window.Title = "MyFirstMiniGame";
            graphics.PreferredBackBufferWidth = 1920;
            graphics.PreferredBackBufferHeight = 1080;
            graphics.PreferMultiSampling = false;
            graphics.IsFullScreen = true;
        }


        protected override void Initialize()
        {


            base.Initialize();
        }


        protected override void LoadContent()
        {

            spriteBatch = new SpriteBatch(GraphicsDevice);
            Map = Content.Load<Texture2D>("map");
            avatar = Content.Load<Texture2D>("avarar");
            gc = Content.Load<Texture2D>("gui_cursor");

            map_rec.Width = Map.Width;
            map_rec.Height = Map.Height;

            avatar_rec.Width = avatar.Width;
            avatar_rec.Height = avatar.Height;

            gui_cursor_rec.Width = gui_cursor.Width;
            gui_cursor_rec.Height = gui_cursor.Height;

            avatar_rec.X = 300;
            avatar_rec.Y = 300;
        }


        protected override void UnloadContent()
        {

        }

    
        protected override void Update(GameTime gameTime)
        {
            MouseState mause = Mouse.GetState();
            gui_cursor_rec.X = mause.X;
            gui_cursor_rec.Y = mause.Y;

/* ich habe hir zzei verschiedene mäuse 1. gui_cursor & 2. Maus damit es    * im Spiel optisch besser aussieht wenn der Avatar den gui_cursor verfolgt
und dann in der mitte stehen bleibt */

            maus_rec.X = mause.X - 60;
            maus_rec.Y = mause.Y - 35;

            x = 5; // speed
            y = -5; // auch speed

            if (mause.LeftButton == ButtonState.Pressed)
            {
                if (maus_rec.X == avatar_rec.X && maus_rec.Y == avatar_rec.Y)
                { }
                else
                {
                    if (maus_rec.X > avatar_rec.X)
                    {
                        avatar_rec.X = avatar_rec.X + x;
                    }
                    if (maus_rec.X < avatar_rec.X)
                    {
                        avatar_rec.X = avatar_rec.X + y;
                    }

                    if (maus_rec.Y > avatar_rec.Y)
                    {
                        avatar_rec.Y = avatar_rec.Y + x;
                    }
                    if (maus_rec.Y < avatar_rec.Y)
                    {
                        avatar_rec.Y = avatar_rec.Y + y;
                    }
                }
            }

            base.Update(gameTime);
        }

        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);

            spriteBatch.Begin();
            spriteBatch.Draw(Map, map_rec, Color.White);
            spriteBatch.Draw(avatar, avatar_rec, Color.White);
            spriteBatch.Draw(gui_cursor, gui_cursor_rec, Color.White);
            spriteBatch.End();

            base.Draw(gameTime);
        }
    }
}
Ich hoffe es kann mir einer helfen das Problen mit dem Knick zu lösen.
{:€P^P_} is offline  
Reply


Similar Threads Similar Threads
Steuerung bei FIFA 12 - PC
10/02/2011 - Off Topic - 3 Replies
Hallo Leute, ich habe bei FIFA nur noch ein kleines Problem - die Steuerung. Ich habe keinen Controller oder Gamepad, deshalb will ich es mal mit Tastatur versuchen.Wenn ich ins Hauptmenü gehe unter Einstellung und Steuerung, sind da nur die Knöpfe von dem Controller, und wenn ich die drücke stimmen die nicht beim Computer. Ich habe schon fast alle gedrückt im Spiel, ich weiß nur was Flanke, Körpereinsatz und Pass ist. Wo finde ich die Einstellungen für die Steuerung der Tastatur? Ich finde da...
LoL Steuerung
06/27/2011 - League of Legends - 10 Replies
HEy, hab ma gehört das man LoL auch mit nem XBOX Controller zocken kann. (Habs auch erst net geglaubt und hab drüber gelacht XD) Weis jemand wie man des einstellt oder so? MFG
Last Chaos - Steuerung
11/26/2010 - Last Chaos - 4 Replies
Kann man in Last Chaos nur mit der Maus laufen? Finde das etwas doof, mein Bruder hat das vor ein paar Jahren gespielt und er konnte nur mit der Maus laufen, wollte jetzt fragen ob die das geändert haben.
steuerung
06/16/2009 - Metin2 - 5 Replies
Hi ich bin ja noch ziemlicher noob und wollte wissen ob es möglich ist die steuerung zu ändern. es geht jez speziell darum ob ich die tasten strg + h auf die mittlere maustaste belegen kann (beim reiten kann man dann schneller ab und aufsteigen)
steuerung ändern
09/16/2008 - Dekaron - 1 Replies
kann man bei dekaron eu die steuerung ändern?:confused:



All times are GMT +2. The time now is 19:32.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.