A Flash Developer Resource Site

Results 1 to 3 of 3

Thread: Need help displaying 360º using AS2 & trigonometry

  1. #1
    Junior Member
    Join Date
    Apr 2012
    Posts
    3

    Need help displaying 360º using AS2 & trigonometry

    Hi, I'm creating a game that uses trigonometry to calculate and display distance and degrees in dynamic text boxes. I'm calculating the distance of my cursor from center of a movie clip. And using that center of the movie clip, I'm trying to calculate and display a full 360º as my cursor moves around the swf. I have the distance part of the game working but the part that displays degrees is not working properly. The dynamic text box only display from 90º thru 270º. Instead of going past 270º to 360º/0º to 90º, it just counts back down from 270º to 90º. Below is my actionscript. I'd greatly appreciate any help or suggestions. Thanks!


    Code:
    // ActionScript 2.0
    
    //Mouse and Dynamic Text Boxes-------------------------
    
    Mouse.hide();
    
    onMouseMove = function () {
    	feedback.text = "You are moving your mouse";
    	cursor._x = _xmouse;
    	cursor._y = _ymouse;
    	updateAfterEvent();
    	xmouse_value.text = Math.atan2((a), (b));
    	ymouse_value.text = Math.round(radians*180/Math.PI)
    	updateAfterEvent();  
    };
    
    Mouse.addListener(myListener);
      
      
     //distance (RANGE)
    _root.onEnterFrame = function () {
    	xmid = Stage.width/2;
    	ymid = Stage.height/2;
    	
    	a = _root._ymouse-ymid;
    	b = _root._xmouse-xmid;
    	c = Math.sqrt(Math.pow(a, 2)+Math.pow(b, 2));
    	feedbacka.text = Math.round(a);
    	feedbackb.text = Math.round(b);
    	feedbackc.text = Math.round(c/30.4);
    	
    	updateAfterEvent();  
    	
    	var radians:Number;
    	var degrees:Number;
    	
    	//Calculcate Radians
    	//Radians specify an angle by measuring the length around the path of the circle.
    	radians = Math.atan2((c), (b))
    
    	//calculate degrees
    	//the angle the circle is in relation to the center point
    	//update text box inside circle
    	radians_txt = Math.round(radians*360/Math.PI);
       	degrees_txt = Math.round(radians*180/Math.PI);
    	
    	updateAfterEvent();  
    	
    	//getting past 270 degrees
    	
    	radians2_txt = Math.round(radians/Math.PI);
    	radians2_txt = Math.floor(radians + -270);
    
    }

  2. #2
    亲爱钰 slingsrat's Avatar
    Join Date
    Mar 2002
    Location
    Middle Earth
    Posts
    229
    I seem to remember having a problem similar to this when I was designing a dial preloader. I solved it and wrote a tutorial perhaps it may help

  3. #3
    Prid - Outing Nig 13's Avatar
    Join Date
    Jul 2006
    Location
    Norway
    Posts
    1,864
    Didn't look at your code, but you can use this bit of code to achieve what you want:

    (radians*180/Math.PI)+180
    I am back, guys ... and finally 18 :P

    BRING BACK THE OLD DESIGN!! OR AT LEAST FIX THE AS TAGS

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  




Click Here to Expand Forum to Full Width

HTML5 Development Center