Avatar billede plugin- Nybegynder
07. juni 2005 - 00:06 Der er 24 kommentarer og
1 løsning

metode returnere intet

Hej eksperter.. så er jeg løbet ind i endnu et problem jeg ikke kan løse selv.

Jeg har følgende kode:


int prepos = 0;
int wantedpos = 6;

int rotation = FindRotation(wantedpos, prepos); //(Bliver loopet)

public int FindRotation(int wantedPos, int prePos)
        {
           
           
            switch(wantedPos)
            {
                case 0:
                    if(prePos == 0)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = -90;
                    }
                    else
                    {
                        myrotation = -45;
                    }
                   
                    break;
                case 1:
                    if(prePos == 0)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = -135;
                    }
                    else
                    {
                        myrotation = -90;
                    }
                    break;
                case 2:
                    if(prePos == 0)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = 180;
                    }
                    else
                    {
                        myrotation = -135;
                    }
                    break;
                case 3:
                    if(prePos == 0)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = 135;
                    }
                    else
                    {
                        myrotation = 180;
                    }
                    break;
                case 4:
                    if(prePos == 0)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = 90;
                    }
                    else
                    {
                        myrotation = 135;
                    }
                    break;
                case 5:
                    if(prePos == 0)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = 45;
                    }
                    else
                    {
                        myrotation = 90;
                    }
                    break;
                case 6:
                    if(prePos == 0)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = 0;
                    }
                    else
                    {
                        myrotation = 45;
                    }
                    break;
                case 7:
                    if(prePos == 0)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = -45;
                    }
                    else
                    {
                        myrotation = 0;
                    }
                    break;
       
            }
           
            return myrotation;
        }

Jeg ville hører om I evt. kunne se nogen fejl, for jeg får intet tilbage i rotation variablen?
Avatar billede erikjacobsen Ekspert
07. juni 2005 - 00:10 #1
Det er vel ikke hele din kode. Du skriver //(Bliver loopet) - må vi se den loop?
Og hvor er myrotation erklæret?
Avatar billede plugin- Nybegynder
07. juni 2005 - 00:21 #2
koden er meget lang :) men prøver at angive hvordan loopet kører:

public class PlayerSprite
    {
        // Variabler der giver spritens størrelse og position
        protected int prepos = 0;
        protected int wantedpos = 0;
        protected int myrotation;
        protected int rotation = 0;
       
       
        //Opretter Statevariable
        enum PlayerSpriteStates
        {     
            Left,
            Right,
            Down,
            Up,
            LeftDown,
            RightDown,
            LeftUp,
            RightUp,
            Idle,
            Hold
        }
        PlayerSpriteStates PlayerSpriteState = PlayerSpriteStates.Idle;

                public void States()
        {
           
           
            switch(PlayerSpriteState)
            {
                case PlayerSpriteStates.Left:
                   
                    prepos = wantedpos;
                    wantedpos = 6;
                   
                    rotation = FindRotation(wantedpos, prepos);

                                      //kode forkortet...
                                      break;
                          }

public int FindRotation(int wantedPos, int prePos)
        {
           
           
            switch(wantedPos)
            {
                case 0:
                    if(prePos == 0)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = -90;
                    }
                    else
                    {
                        myrotation = -45;
                    }
                   
                    break;
                case 1:
                    if(prePos == 0)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = -135;
                    }
                    else
                    {
                        myrotation = -90;
                    }
                    break;
                case 2:
                    if(prePos == 0)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = 180;
                    }
                    else
                    {
                        myrotation = -135;
                    }
                    break;
                case 3:
                    if(prePos == 0)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = 135;
                    }
                    else
                    {
                        myrotation = 180;
                    }
                    break;
                case 4:
                    if(prePos == 0)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = 90;
                    }
                    else
                    {
                        myrotation = 135;
                    }
                    break;
                case 5:
                    if(prePos == 0)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = 45;
                    }
                    else
                    {
                        myrotation = 90;
                    }
                    break;
                case 6:
                    if(prePos == 0)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = 0;
                    }
                    else
                    {
                        myrotation = 45;
                    }
                    break;
                case 7:
                    if(prePos == 0)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = -45;
                    }
                    else
                    {
                        myrotation = 0;
                    }
                    break;
       
            }
           
            return myrotation;
        }


public static void Main(string[] args)
        {
            Application.Run(new MainForm());
        }
       
       
            private void InitializeComponent() {
            this.timer1 = new System.Timers.Timer();
            ((System.ComponentModel.ISupportInitialize)(this.timer1)).BeginInit();
            this.SuspendLayout();
            //
            // timer1
            //
            this.timer1.Enabled = true;
            this.timer1.Interval = 10;
            this.timer1.SynchronizingObject = this;
            this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.gameLoop);
            //
            // MainForm
            //
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.ClientSize = new System.Drawing.Size(400, 270);
            this.ForeColor = System.Drawing.SystemColors.ControlLight;
            this.Name = "MainForm";
            this.Load += new System.EventHandler(this.MainFormLoad);
            this.Paint += new System.Windows.Forms.PaintEventHandler(this.MainFormPaint);
            ((System.ComponentModel.ISupportInitialize)(this.timer1)).EndInit();
            this.ResumeLayout(false);
        }
        #endregion
        void MainFormLoad(object sender, System.EventArgs e)
        {
            // Tegn med double-buffering, undgå flimmer
            SetStyle(ControlStyles.UserPaint, true);
            SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            SetStyle(ControlStyles.DoubleBuffer, true);
            // Lav 3 nye sprites
            sprites = new PlayerSprite[3];
            sprites[0] = new PlayerSprite(100,100,19,41,"Niels");
            sprites[1] = new PlayerSprite(300,200,19,41,"Torben");
            sprites[2] = new PlayerSprite(60,200,19,41,"Palle");
            //sprites[3] = new PlayerSprite(0,0,5,5,"Mouse");           
        }
       
        void gameLoop(object sender, System.Timers.ElapsedEventArgs e)
        {
                       
            // Tjekker hvilken tilstand spriten er i
            //PlayerSprite.States();
           
            //Genindlæsning
            Invalidate(true);

        }
       
        void MainFormPaint(object sender, System.Windows.Forms.PaintEventArgs e)
        {
               
            for(int i=0; i<sprites.Length; i++)
            { 
                       
                // Tjekker spritens tilstand
                sprites[i].States();
                               
            }

        }

pyhhhh... den var lang :S ved ikke om det hjælper dig frem til hvordan det kan være at der ikke bliver returneret noget?
Avatar billede erikjacobsen Ekspert
07. juni 2005 - 00:26 #3
Det hjælper ikke et hak, når du ikke vil vise mig din kode.

Det du udelader kan jo indeholde løsningen på problemet, og for den sags skyld
forklaringen på hvad du mener med "at der ikke bliver returneret noget".

Variablen myrotation skal du nok kun erklære inde i FindRotation. Men det har ikke
noget med problemet at gøre.
Avatar billede plugin- Nybegynder
07. juni 2005 - 00:29 #4
okay du ber selv om det :)
Avatar billede erikjacobsen Ekspert
07. juni 2005 - 00:29 #5
Det er vel dig der beder om at få løst et problem ;)
Avatar billede plugin- Nybegynder
07. juni 2005 - 00:30 #6
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;

namespace winvampire
{
    /// <summary>
    /// Description of PlayerSprite.
    /// </summary>
    public class PlayerSprite
    {
        // Variabler der giver spritens størrelse og position
        protected int x=0;
        protected int y=0;
        protected int wantedx=0;
        protected int wantedy=0;
        protected int width=0;
        protected int height=0;
        protected int rotatetimer = 0;
        protected string membername;
        protected int prepos = 0;
        protected int wantedpos = 0;
        protected int myrotation;
        protected int rotation = 0;
       
       
        // Spritens farveangives med variablen color.
        //protected Color color = Color.Black;
       
        //Opretter Statevariable
        enum PlayerSpriteStates
        {     
            Left,
            Right,
            Down,
            Up,
            LeftDown,
            RightDown,
            LeftUp,
            RightUp,
            Idle,
            Hold
        }
        PlayerSpriteStates PlayerSpriteState = PlayerSpriteStates.Idle;
       
       
        //Henter bitmapfil som skal ligge over spriten
        protected Bitmap pic = (Bitmap)Image.FromFile(@"..\..\billeder\player_blackgray.bmp");
        protected Bitmap drawpic = (Bitmap)Image.FromFile(@"..\..\billeder\player_blackgray.bmp");

       
        //PlayerSprite konstruktør - opretter en ny sprite
        public PlayerSprite(int x, int y, int width, int height, string membername)
        {
            this.x = x;
            this.y = y;
            this.wantedx = x;
            this.wantedy = y;
            this.width = width;
            this.height = height;
            this.membername = membername;
           
        }
       
        public void States()
        {
           
           
            switch(PlayerSpriteState)
            {
                case PlayerSpriteStates.Left:
                   
                    prepos = wantedpos;
                    wantedpos = 6;
                   
                    //rotation = -90;
                   
                    rotation = FindRotation(wantedpos, prepos);
                   
                    //this.width = 19;
                    //this.height = 41;
                   
                    if(rotation < 0)
                    {
                        rotatetimer = rotatetimer-1;
                       
                        if(rotatetimer>rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
                    else
                    {
                        rotatetimer = rotatetimer+1;
                       
                        if(rotatetimer<rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
           
                    break;
                case PlayerSpriteStates.Right:
                    prepos = wantedpos;
                    wantedpos = 2;
                   
                    //rotation = FindRotation(wantedpos, prepos);
                   
                    rotation = 90;
                   
                    //this.width = 19;
                    //this.height = 41;
                   
                    if(rotation < 0)
                    {
                        rotatetimer = rotatetimer-1;
                       
                        if(rotatetimer>rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
                    else
                    {
                        rotatetimer = rotatetimer+1;
                       
                        if(rotatetimer<rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
           
                    break;
                case PlayerSpriteStates.Down:
                    prepos = wantedpos;
                    wantedpos = 4;
                   
                    //rotation = FindRotation(wantedpos, prepos);
                   
                    rotation = 180;
                   
                    //this.width = 41;
                    //this.height = 19;
                   
                    if(rotation < 0)
                    {
                        rotatetimer = rotatetimer-1;
                       
                        if(rotatetimer>rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
                    else
                    {
                        rotatetimer = rotatetimer+1;
                       
                        if(rotatetimer<rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
           
                    break;
                case PlayerSpriteStates.Up:
                    prepos = wantedpos;
                    wantedpos = 0;
                   
                    //rotation = FindRotation(wantedpos, prepos);
                   
                    rotation = 0;
                   
                    //this.width = 19;
                    //this.height = 41;
                   
                    if(rotation < 0)
                    {
                        rotatetimer = rotatetimer-1;
                       
                        if(rotatetimer>rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
                    else
                    {
                        rotatetimer = rotatetimer+1;
                       
                        if(rotatetimer<rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
           
                    break;
                case PlayerSpriteStates.LeftDown:
                    prepos = wantedpos;
                    wantedpos = 5;
                   
                    //rotation = FindRotation(wantedpos, prepos);
                   
                    rotation = -135;
                   
                    //this.width = 60;
                    //this.height = 41;
                   
                    if(rotation < 0)
                    {
                        rotatetimer = rotatetimer-1;
                       
                        if(rotatetimer>rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
                    else
                    {
                        rotatetimer = rotatetimer+1;
                       
                        if(rotatetimer<rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
           
                    break;
                case PlayerSpriteStates.RightDown:
                    prepos = wantedpos;
                    wantedpos = 3;
                   
                    //rotation = FindRotation(wantedpos, prepos);
                   
                    rotation = 135;
                   
                    //this.width = 19;
                    //this.height = 41;
                   
                    if(rotation < 0)
                    {
                        rotatetimer = rotatetimer-1;
                       
                        if(rotatetimer>rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
                    else
                    {
                        rotatetimer = rotatetimer+1;
                       
                        if(rotatetimer<rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
           
                    break;
                case PlayerSpriteStates.LeftUp:
                    prepos = wantedpos;
                    wantedpos = 7;
                   
                    rotation = FindRotation(wantedpos, prepos);
                   
                    //this.width = 19;
                    //this.height = 41;
                   
                    if(rotation < 0)
                    {
                        rotatetimer = rotatetimer-1;
                       
                        if(rotatetimer>rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
                    else
                    {
                        rotatetimer = rotatetimer+1;
                       
                        if(rotatetimer<rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
           
                    break;
                case PlayerSpriteStates.RightUp:
                    prepos = wantedpos;
                    wantedpos = 1;
                   
                    rotation = FindRotation(wantedpos, prepos);
                   
                    //this.width = 19;
                    //this.height = 41;
                   
                    if(rotation < 0)
                    {
                        rotatetimer = rotatetimer-1;
                       
                        if(rotatetimer>rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
                    else
                    {
                        rotatetimer = rotatetimer+1;
                       
                        if(rotatetimer<rotation)
                        {
                            this.Rotate(rotatetimer);
                        }
                        else
                        {
                            rotatetimer = rotation;
                        }
                       
                    }
           
                    break;
                case PlayerSpriteStates.Idle:
                    //this.wantedX = this.x;
                    //this.wantedY = this.y;
                    //pic = (Bitmap)Image.FromFile(@"..\..\billeder\player_blackgray_left.bmp");
                    //pic.MakeTransparent(Color.White);
                    break;
                case PlayerSpriteStates.Hold:
                    //pic = (Bitmap)Image.FromFile(@"..\..\billeder\player_blackgray_left.bmp");
                    //pic.MakeTransparent(Color.White);
                    //Bitmap b = (Bitmap)Image.FromFile(@"..\..\billeder\test6.bmp");
                    break;
            }
           
        }
       
        public int FindRotation(int wantedPos, int prePos)
        {
           
           
            switch(wantedPos)
            {
                case 0:
                    if(prePos == 0)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = -90;
                    }
                    else
                    {
                        myrotation = -45;
                    }
                   
                    break;
                case 1:
                    if(prePos == 0)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = -135;
                    }
                    else
                    {
                        myrotation = -90;
                    }
                    break;
                case 2:
                    if(prePos == 0)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = 180;
                    }
                    else
                    {
                        myrotation = -135;
                    }
                    break;
                case 3:
                    if(prePos == 0)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = 135;
                    }
                    else
                    {
                        myrotation = 180;
                    }
                    break;
                case 4:
                    if(prePos == 0)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = 90;
                    }
                    else
                    {
                        myrotation = 135;
                    }
                    break;
                case 5:
                    if(prePos == 0)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = 0;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = 45;
                    }
                    else
                    {
                        myrotation = 90;
                    }
                    break;
                case 6:
                    if(prePos == 0)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = -45;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = 0;
                    }
                    else
                    {
                        myrotation = 45;
                    }
                    break;
                case 7:
                    if(prePos == 0)
                    {
                        myrotation = 45;
                    }
                    else if(prePos == 1)
                    {
                        myrotation = 90;
                    }
                    else if(prePos == 2)
                    {
                        myrotation = 135;
                    }
                    else if(prePos == 3)
                    {
                        myrotation = 180;
                    }
                    else if(prePos == 4)
                    {
                        myrotation = -135;
                    }
                    else if(prePos == 5)
                    {
                        myrotation = -90;
                    }
                    else if(prePos == 6)
                    {
                        myrotation = -45;
                    }
                    else
                    {
                        myrotation = 0;
                    }
                    break;
       
            }
           
            return myrotation;
        }
       
        public void Rotate(int angle)
        {
            if(angle < 0)
            {
                angle = 360-angle;
            }
            else if(angle > 359)
            {
                angle = angle-360;
            }
           
            Image oldImage = drawpic;
               
            drawpic = RotateUtilities.RotateImage(pic, (float) angle);
                       
            if( oldImage != null )
            {
                oldImage.Dispose();
            }
        }
       
        // Draw tegner spriten i et Grpahics-objekt (formen)
        public void Draw(Graphics g)
        { 
            //g.FillRectangle(new SolidBrush(Color.Transparent), x,y, width, height);
            g.FillRectangle(new SolidBrush(Color.Red), x,y, width, height);
            g.DrawImage(drawpic,x,y);
            drawpic.MakeTransparent(Color.White);
            pic.MakeTransparent(Color.White);
            //g.DrawImage(oldImage,0,0);

        }
       
        public void AutoMove()
        {
           
            // får boksen til at flytte sig 1 pr 10ms i retning mod den tidligere mouseloc.
               
                PlayerSpriteState = PlayerSpriteStates.Idle;
           
                if (this.wantedX != this.X)
                {
                    if (this.wantedX > this.X)
                    {
                        PlayerSpriteState = PlayerSpriteStates.Right;
                        this.X++;
                    }
                    else
                    {
                        PlayerSpriteState = PlayerSpriteStates.Left;
                        this.X--;
                    }
                }

                if (this.wantedY != this.Y)
                {
                    if (this.wantedY > this.Y)
                    {
                        if (this.wantedX == this.X)
                        {
                            PlayerSpriteState = PlayerSpriteStates.Down;
                            this.Y++;
                        }
                        else if (this.wantedX > this.X)
                        {
                            PlayerSpriteState = PlayerSpriteStates.RightDown;
                            this.Y++;
                        }
                        else
                        {
                            PlayerSpriteState = PlayerSpriteStates.LeftDown;
                            this.Y++;
                        }
                           
                      }
                    else
                    {
                        if (this.wantedX == this.X)
                        {
                            PlayerSpriteState = PlayerSpriteStates.Up;
                            this.Y--;
                        }
                        else if (this.wantedX > this.X)
                        {
                            PlayerSpriteState = PlayerSpriteStates.RightUp;
                            this.Y--;
                        }
                        else
                        {
                            PlayerSpriteState = PlayerSpriteStates.LeftUp;
                            this.Y--;
                        }   
                    }
                }
               
        }
       
        // Properties til at gemme og hente spritens:  // - position  // - størrelse  // - farve
        public int X
        {
            get { return this.x; }
            set { this.x = value; }
        }
        public int Y
        { 
            get { return this.y; }
            set { this.y = value; }
        }
        public int wantedX
        {
            get { return this.wantedx; }
            set { this.wantedx = value; }
        }
        public int wantedY
        { 
            get { return this.wantedy; }
            set { this.wantedy = value; }
        }
        public int Height
        { 
            get { return this.height; }
            set { this.height = value; }
        }
        public int Width
        {   
            get { return this.width; }
            set { this.width = value; }
        }
        public string Membername
        {   
            get { return this.membername; }
            //set { this.membername = value; }
        }
    }
}
Avatar billede plugin- Nybegynder
07. juni 2005 - 00:32 #7
Det er hele PlayerSprite klassen...(PlayerSprite.cs) ved ikke om du også vil have Mainform.cs ?
Avatar billede erikjacobsen Ekspert
07. juni 2005 - 00:33 #8
Ok, og hvad er så betydningen af din påstand om at FindRotation ikke returnerer noget?
Avatar billede plugin- Nybegynder
07. juni 2005 - 00:37 #9
Jeg vil gerne have FindRotation() til at returnerer variablen myrotation og lægge i variablen rotation så jeg derved kan bruge det videre i States(). I selve formen som al den kode her laver skal jeg kunne rotere nogle bitmaps udfra det tal der kommer til at stå i rotation.
Avatar billede plugin- Nybegynder
07. juni 2005 - 00:37 #10
ligenu returere den kun 0 så vidt jeg kan se
Avatar billede erikjacobsen Ekspert
07. juni 2005 - 00:44 #11
Ja, det passer ikke. Den returnerer ikke bare 0, generelt.
Men hvorfor mener du den returnerer 0? (hvilket jo er noget ganske andet end "ikke noget"....)
Avatar billede plugin- Nybegynder
07. juni 2005 - 00:51 #12
jeg undskylder den lidt misvisende title på spørgsmålet.

Grunden til jeg tror den returere nul er fordi jeg har prøvet at udkommentere rotation = FindRotation(wantedpos, prepos); og istedet indsætte rotation = 90; eller rotation = 0; hvorefter jeg så kan se at bitmapet opfører ens når jeg skriver både rotation = FindRotation(wantedpos, prepos); og rotation = 0;... skriver jeg derimod rotation = 90; rotere billedet 90 grader.
Avatar billede plugin- Nybegynder
07. juni 2005 - 00:54 #13
så spørgsmålet burde have heddet: Hvorfor returnere funktionen FindRotation() 0? For det burde den ikke efter min opfattelse.
Avatar billede snepnet Nybegynder
07. juni 2005 - 01:28 #14
bare et lille spørgsmål plugin-
har du prøvet at bruge debuggeren ? - så kan du jo se hvad der sker, hvad der bliver returneret og hvorfor.
mvh
Avatar billede snepnet Nybegynder
07. juni 2005 - 01:43 #15
umiddelbart ser det ud til at du kalder funktionen med 6,0 hvilket skulle give dig 90 tilbage, men det er jo ikke lige til at vide præcis hvordan det ser ud hos dig.
men... siden du også sætter

prepos = wantedpos;
wantedpos = 6;

vil du jo muligvis komme til at kalde FindRotation med 6,6 hvilket vil returnere dig 0 jf. din switch.

case 6:
    if(prePos == 0)
    {
        myrotation = 90;
    }
    else if(prePos == 1)
    {
        myrotation = 135;
    }
    else if(prePos == 2)
    {
        myrotation = 180;
    }
    else if(prePos == 3)
    {
        myrotation = -135;
    }
    else if(prePos == 4)
    {
        myrotation = -90;
    }
    else if(prePos == 5)
    {
        myrotation = -45;
    }
    else if(prePos == 6)
    {
        myrotation = 0; // her lander du med 6,6
    }
    else
    {
        myrotation = 45;
    }
    break;

men... brug debuggeren - jeg har ikke brugt mange øjeblikke på at kigge på det, så jeg kan snildt have misforstået det du har lavet.

og.... du kan for øvrigt godtlave en enum som denne :

public enum Numbers
{
  en = 1,
  to = 2,
  minus1 = -1,
  minus2 = -2,
  hundrede = 100
}

så du kan sådan set sætte dine rotationsværdier i din enum hvis du vil.... ville jo nok give dig muligheden for at sløjfe nogle af dine kodelinier.

mvh
Avatar billede plugin- Nybegynder
07. juni 2005 - 08:36 #16
Hej snepnet :)

Jeg bruger #develop.

Når du siger debuggeren, er det så ikke bare om der kommer fejl når man kompiler projektet? Eller er det en anden feature jeg ikke har opdaget endnu? - Dette er mit første egentlige projekt i c#.
Avatar billede plugin- Nybegynder
07. juni 2005 - 08:40 #17
mht. om prepos kunne være 6, så har jeg prøvet at skrive en værdi direkte ind, men den opfører sig stadig som om den returnere 0. - Hvis der er nogen der skulle have tid og lyst, så kan jeg også godt sende hele projektet, men det er en del kode at kigge igennem.
Avatar billede erikjacobsen Ekspert
07. juni 2005 - 09:42 #18
Ok, så du ved ikke hvad den returnerer i forskellige situationer - det er bare gætværk ;)

Du kan nederst i funktionen skrive

  Console.Writeline(wantedpos + " " + prepos + " " + myrotation);

så du kan se hvad den bliver kaldt med, og hvad den afleverer - eller du kan bruge
debuggeren, hvis der er sådan en i #develop.
Avatar billede snepnet Nybegynder
07. juni 2005 - 10:13 #19
hej igen plugin- :o)

nej der er stor forskel på at kompilere og debugge. at kompileren melder fejl fordi du har skrevet i noget forkert i koden er en ting. når du debugger, skal din kode kunne kompilere, og du kan så steppe ned igennem den, og se hvordan dine variable skifter mv - det er en anden ting.

der er masser af gode tutorials på nettet omkring det, og der følger en debugger (med gui) med når du installerer sdk'et (der er sådan set også en kommandolinieversion). du kan se hvordan du bruger den her :
http://wiki.sharpdevelop.net/default.aspx/SharpDevelop.DebuggingInSharpDevelop
brug det - brug det - brug det :o)

mvh
Avatar billede plugin- Nybegynder
07. juni 2005 - 10:13 #20
Okay... jeg har nu fundet ud af at metoden som skulle returnere noget var fuldstændig unødvendig i det jeg gerne ville have lavet, istedet har jeg brug for at se værdien af en anden variable som hele tiden ændre sig kaldet rotatetimer. Har prøvet at smide følgende ind i min metode: Console.Writeline("degrees: " + rotatetimer); men aner ikke hvor jeg skal se resultatet af den linje henne - siden det er en windows applikation og der ikke er nogen console at sporer nogen steder. Kan godt være det bare er #develop der er lidt sjov på det punkt - kan heller ikke finde den berømte debug feature :( ser ud som om #develop kalder fejlmeddelserne ved kompiling for debug
Avatar billede plugin- Nybegynder
07. juni 2005 - 10:15 #21
ahh.. det findes slet ikke i #develop - tak for linket ;) kigger på det.
Avatar billede plugin- Nybegynder
07. juni 2005 - 10:23 #22
UHHHHH!!! Sikke dog en lækker ting! - okay :D tror jeg kan klarer mig selv fra dette punkt. Mange tak for hjælpen begge to. Ved ikke om I bare vil dele points eller hvordan?
Avatar billede erikjacobsen Ekspert
07. juni 2005 - 10:48 #23
Ingen point til mig, tak.
Avatar billede plugin- Nybegynder
07. juni 2005 - 12:55 #24
well.. snepnet smid et svar :)
Avatar billede snepnet Nybegynder
29. juni 2005 - 20:51 #25
får du her :o) - og undskyld ventetiden!
mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester