dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Kaa pielikt "berzi" "aatruma" vektoram?

 
dev.gamez.lv Forum Index -> Iesācējiem
View previous topic :: View next topic  
Author Message
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Fri Jan 19, 2007 4:30 pm    Post subject: Kaa pielikt "berzi" "aatruma" vektoram?

Berze domats kaa anglju FRICTION
Veektors aatrums VELOCITY
(ja kaads nesaprot kontekstu)

ideja ka man ir particle effekts un partiklim ir ik pa noteiktu laika vieniibu jaazaudee dalja savas energinas "berzes/pretestiibas" rezultaataa
lietojot kodu:

Code:

            if (velocity.X > 0)
                velocity.X -= friction * (float)elapsed;
            else if (velocity.X < 0)
                velocity.X += friction * (float)elapsed;
            else
            {
                velocity.X = 0;
            }
            if (velocity.Y > 0)
                velocity.Y -= friction * (float)elapsed;
            else if (velocity.Y < 0)
                velocity.Y += friction * (float)elapsed;
            else
            {
                velocity.Y = 0;
            }

kur elapsed - laiks
partiklji izvietojas taadaa kaa uz gala nolikta kavadraata formaa nevis pa rinki - partikli pievelkas x un y asij...

kaada ir pareiza matemaatiksaa operaacija kas ir jaaveic lai ieguutu "pareizu" effektu?
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Fri Jan 19, 2007 5:24 pm    Post subject:

Parasti vides berzes vektors darbojas pretēji ātruma vektoram. Piemēram gaisa pretestību bieži modelē kā F = - k * v, kur k=kautkāds koeficients (pozitīvs). Vai arī mazus objektus, kas kustas lēnā ātrumā pa kādu šķidrumu.

Tātad vienkāršākajā gadījumā: new_v = old_v + elapsed_time * (-k * old_v). Kur old_v=vecais ātruma vektors, k=kautkāds regulējams koeficients (sākumā ņem ļoti maziņu, un palielini to, ja gribi lielāku vides pretestību), elapsed_time=laika solis kopš iepriekšējās simulācijas.


Last edited by bubu on Fri Jan 19, 2007 11:22 pm; edited 1 time in total
Back to top
View user's profile Send e-mail
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Fri Jan 19, 2007 10:58 pm    Post subject:

Paldies, viss stradaa pareizi Rolling Eyes Very Happy

Code:
velocity += (float)elapsed * (-friction * velocity);
Back to top
View user's profile
Display posts from previous:   
dev.gamez.lv Forum Index -> Iesācējiem All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group