View previous topic :: View next topic |
Author |
Message |
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Fri Jun 11, 2010 10:35 pm Post subject: |
|
Tad neredzu problēmu kāpēc auto nebūtu jākustas. Jāskatās viss pārējais kods - kā tu no kameras izdomā kādu pasaules daļu zīmēt, utml.. |
|
Back to top |
|
|
WhiteFalcon
Joined: 16 May 2010 Posts: 102 Location: Rīga
|
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sat Jun 12, 2010 10:12 am Post subject: |
|
Te viena kļūda:
Code: | if (ksKeyboardState.IsKeyDown(Keys.W))
361. {
362. AutoAkseleracija();
363.
364. }
365. else if (ksKeyboardState.IsKeyUp(Keys.S))
366. {
367. AutoDeAkseleracija();
368.
369. if (ksKeyboardState.IsKeyDown(Keys.S)) |
Trūkst "}", kuru atradu funkcijas beigās...
un te otra:
Code: | if (iProgramMode == 0)
612. {
613.
614. spriteBatch.Draw(PlayerX, new Vector2(520,350), null, Color.White, Rotacija, new Vector2(PlayerX.Width / 2, PlayerX.Height / 2),1.0f, SpriteEffects.None, 1);
615. } |
-neesmu XNA speciālists, bet izskatās, ka padotais [520,350] vektors ir pozīcija mašīnai, kura stāvēja uz vietas. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
WhiteFalcon
Joined: 16 May 2010 Posts: 102 Location: Rīga
|
Posted: Sat Jun 12, 2010 11:08 am Post subject: |
|
Auto Pozicijas vektors ir tads lai auto paliek ekrana centra.Kā to nomaina uz Poziciju auto kustas bet kamera ne. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sat Jun 12, 2010 11:12 am Post subject: |
|
Kam attiecībā pret ko jākustas?
Ja gribi, lai auto paliek kameras centrā un braukā pa pasauli, tad tur (spritebatch.draw izsaukumā) ieliec auto reālo pozīciju. Un kameras pozīciju arī uzstādi kā vienādu ar auto pozīciju. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
WhiteFalcon
Joined: 16 May 2010 Posts: 102 Location: Rīga
|
Posted: Sat Jun 12, 2010 11:24 am Post subject: |
|
Code: | cam.KamerasPozicija.X = Pozicija.X;
cam.KamerasPozicija.Y = Pozicija.Y;
cam.KamerasPozicija.X = (float)Math.Round(KamerasPozicija.X);
cam.KamerasPozicija.Y = (float)Math.Round(KamerasPozicija.Y); |
zem ši man vēl ir 2klases
Code: | spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.SaveState, cam.TransformacijaK(Kamera)); |
Zem ši atrodas tile karte jeb viss kas kustas.
spritebatch.end();
Code: | Spritebatch.begin();
te ir viss kas nak līdz ar kameru(gui...untt)
spritebatch.end() |
ja izdaru kā saki auto kustas bet kamera ne. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sat Jun 12, 2010 11:31 am Post subject: |
|
Vajadzētu kustēties.
Pēdējā spritebatch.draw neaizmirsi ielikt auto reālo pozīciju? _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
WhiteFalcon
Joined: 16 May 2010 Posts: 102 Location: Rīga
|
Posted: Sat Jun 12, 2010 11:34 am Post subject: |
|
ja ieliku
Code: | spriteBatch.Draw(PlayerX, Pozicija, null, Color.White, Rotacija, new Vector2(PlayerX.Width / 2, PlayerX.Height / 2),1.0f, SpriteEffects.None, 1); |
kad noņemu
Code: | //cam.KamerasPozicija.X = (float)Math.Round(KamerasPozicija.X);
//cam.KamerasPozicija.Y = (float)Math.Round(KamerasPozicija.Y); |
Tad kamera kustas bet ~ 3reizes lenak un auto var aizbraukt arpus redzes loka. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sat Jun 12, 2010 11:48 am Post subject: |
|
Pirmais minējums - kaut kādas problēmas ar transformāciju kodu.
Diemžēl neko labāku pagaidām galvā atrast nevaru. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
WhiteFalcon
Joined: 16 May 2010 Posts: 102 Location: Rīga
|
Posted: Sat Jun 12, 2010 12:04 pm Post subject: |
|
jam ja tev nekas galvā nešaujas tad man visp melna bilde
Code: | public Vector2 PozicijaK
{
get { return KamerasPozicija; }
set { KamerasPozicija = value; }
}
public Matrix TransformacijaK(GraphicsDevice graphicsDevice)
{
Transformacija =
Matrix.CreateTranslation(new Vector3(-KamerasPozicija.X, -KamerasPozicija.Y,0));
return Transformacija;
} |
|
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sat Jun 12, 2010 12:26 pm Post subject: |
|
Es ceru, ka ar projekcijas matricu viss ir OK. Tā būtu vienīgā neapskatītā lieta... _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
WhiteFalcon
Joined: 16 May 2010 Posts: 102 Location: Rīga
|
Posted: Sat Jun 12, 2010 12:53 pm Post subject: |
|
Tadas nav |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sat Jun 12, 2010 1:16 pm Post subject: |
|
Tāda vienmēr ir. Jautājums ir tikai: kāda tā ir. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
WhiteFalcon
Joined: 16 May 2010 Posts: 102 Location: Rīga
|
Posted: Sat Jun 12, 2010 8:41 pm Post subject: |
|
Ar "Tādas nav" domāju ka vēl nēsmu izveidojis. Bet kam vinju ? man tak nav 3d spele (nesi bargs ar 3d spelju kodēšanu nestrādāju)
Code: | Matrix.CreatePerspectiveFieldOfView(.....) |
|
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sat Jun 12, 2010 9:07 pm Post subject: |
|
Hmm. Varbūt arī viņa te nav vainīga. Tehniski varētu būt, bet diez vai API pats viņu bojās.
Būtu labāk, ja tu debuggerī ieliktu breakpointu īstajā vietā (pie tām vietām, kur kodā tiek lietota kameras pozīcija un auto pozīcija) un paskatītos, vai tās vērtības netiek kaut kā nevēlami izmainītas ar "Step Over".
EDIT: Vienīgais, ko es nesaprotu tajā kodā, ko iedevi - kāpēc pēdējam SpriteBatch'am nav transformācijas? _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
|