| Problem z poruszeniem obiektu o wartość kąta i z powrotem | 
    
   
      | Autor | Wiadomość | 
            
      | voytas Początkujący
 
  
 Dołączył: 12 Sty 2010
 Posty: 3
 Skąd: częstochowa
 
 | 
            
               |  Wysłany: Wto 12 Sty, 2010 14:33   Problem z poruszeniem obiektu o wartość kąta i z powrotem |   
 |  
               | 
 |  
               | Witam, 
 Chcę wykonać efekt reflektora - szperacza. Promień skierowany w gorę porusza się w lewo i w prawo o pewną wartość zadanego kąta.
 Przesunięcie promienia o wartość kąta w jedną stronę to nie problem:
 
 
  	  | Kod: |  	  | onSelfEvent(EnterFrame) {
 
 if (szper._rotation<125) {
 
 szper._rotation += 4;
 
 }
 };
 
 | 
 
 Problem w tym ze nie wiem jak wrócić z promieniem do punktu wyjścia. Kombinowałem coś takiego:
 
  	  | Kod: |  	  | onSelfEvent(EnterFrame) {
 
 if (szper._rotation<125) {
 
 szper._rotation += 4;
 
 }
 
 if (szper._rotation==125) {
 
 szper._rotation -= 4;
 }
 };
 
 | 
 
 ale niestety nie działa w 100%. Promień leci w prawo o 125 stopni i staje w miejscu i po animacji....
 Proszę o pomoc.
 
 Pozdrawiam
 Voytas
 |  | 
	
		|   |  | 
	  
      
		|  | 
   
         
      | smok3n   Praktyk
 
  
 Pomógł: 3 razy
 Dołączył: 06 Sie 2009
 Posty: 23
 Skąd: Lublin
 
 | 
            
               |  Wysłany: Wto 12 Sty, 2010 15:20 |   
 |  
               | 
 |  
               | Można się pokusić o fizyczne paramtry obiektu _vrotation, w tym celu utwórz mc'eka i nazwij go szper, tak jak to zrobiles, ustaw sobie anchor'y tam gdzie ma być oczekiwany punkt obrotu ( to ważne jeżeli obiekt nie jest symetryczny - a pewnie taki nie będzie); użyj do przesuwania punktu kursora myszki z przytrzymanym klawiszem [Alt]; w szper wpisz takie coś : 
  	  | Kod: |  	  | onSelfEvent (load) { zmienna = 0; // to zostawiasz, bo to licznik
 okres = 40; // to mozna powiedziec jest czas obrotu
 predkosc = 40; // to predkosc obrotowa
 }
 onFrame (1) {
 
 if (zmienna < okres) {
 this._vrotation = predkosc;
 }
 if (zmienna >= okres) {
 if (zmienna >= 2*okres){zmienna = 0;}
 this._vrotation = -predkosc;
 }
 zmienna+=1;
 
 }
 
 onFrame (2) {
 prevFrameAndPlay();
 
 }
 
 | 
 
 Powinno działac poprawnie, ale nie zapomnij ustawić Export settings for movie na mc'eku szper ustaw Uses Physics Properties i w ogólnych dla filmu Support Physics Properties, w przeciwnym wypadku nie zadziała :[
 
 Daj znać jak zadziała bo nie próbowałem, nie mam Słiszka pod ręką :[
 
 Kurde ale byczka strzelilem troche
  moja wina   
 Tutaj skrypt łatwiejszy BEZ PHYSICS PROPERTIES
 
  	  | Kod: |  	  | onSelfEvent (load) { zmienna = 0; // to zostawiasz, bo to licznik
 okres = 40; // to mozna powiedziec jest czas obrotu
 predkosc = 4; // to predkosc obrotowa
 }
 onFrame (1) {
 
 if (zmienna < okres) {
 this._rotation += predkosc;
 }
 if (zmienna >= okres) {
 if (zmienna >= 2*okres){zmienna = 0;}
 this._rotation += -predkosc;
 }
 zmienna+=1;
 
 }
 
 onFrame (2) {
 prevFrameAndPlay();
 
 }
 | 
 
 Nie ma to jak sobie utrudniać życie
   |  
				| _________________ Smok3n
 |  | 
	
		|   |  | 
	  
      
		|  | 
   
         
      | voytas Początkujący
 
  
 Dołączył: 12 Sty 2010
 Posty: 3
 Skąd: częstochowa
 
 | 
            
               |  Wysłany: Wto 12 Sty, 2010 20:14 |   
 |  
               | 
 |  
               | Serdeczne dzięki smok3n - biega aż miło   |  | 
	
		|   |  | 
	  
      
		|  | 
   
         
      | ^Januszr   
  
  
 Pomógł: 216 razy
 Dołączył: 11 Maj 2005
 Posty: 1854
 Skąd: Stolyca od urodzenia
 
 | 
            
               |  Wysłany: Sro 13 Sty, 2010 08:39 |   
 |  
               | 
 |  
               | Najbardziej prostackie rozwiązanie w załączniku. |  | 
	
		|   |  | 
	  
      
		|  | 
   
         
      |  |