View previous topic :: View next topic |
Author |
Message |
snwlv
Joined: 10 Jan 2010 Posts: 86
|
Posted: Sat Jan 23, 2010 1:42 pm Post subject: Sienas spēlē |
|
Hi.Būtu nepieciešama palīdzība ar Sienām.
Bumbiņa lēka pa visu tai atvēleto laukumu bet kā lai uztaisa to kad viņa atsitas pret dēlīti ? Esmu mieiģināji bet sanāk ka bumbiņa vienkārši lēka dēļa garumā un augstuma
Attels:
bumbiņas kods
Code: | private void Sienas()
{
if (pozicija.X >= fons.Width - bumba.Width)
{
if (gravitacija.X > 0)
gravitacija.X *= -1;
}
if (pozicija.X <= 0)
{
if (gravitacija.X < 0)
gravitacija.X *= -1;
}
if (pozicija.Y >= fons.Height - bumba.Height)
{
if (gravitacija.Y > 0)
gravitacija.Y *= -1;
}
if (pozicija.Y <= 0)
{
if (gravitacija.Y < 0)
gravitacija.Y *= -1;
}
} |
|
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sat Jan 23, 2010 2:17 pm Post subject: |
|
Vienkāršākais variants - kad bumbas centrs ir starp sienas abām malām uz X ass un <bumbas centra y + rādiuss> lielāks par dēlīša y, apgriez otrādi Y ātrumu.
Sarežģītākais variants - CCD. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
snwlv
Joined: 10 Jan 2010 Posts: 86
|
Posted: Sat Jan 23, 2010 10:53 pm Post subject: |
|
isti neiebraucu tava teiktajā. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sat Jan 23, 2010 11:33 pm Post subject: |
|
Tas ir tuvu pseidokodam.
Code: |
if( bumba.centrs.x > dēlis.x UN bumba.centrs.x < dēlis.x + dēlis.width UN
bumba.y + bumba.height > dēlis.y UN bumba.lineārais_ātrums.y > 0 /*tavā kodā "gravitacija.y > 0"*/ ) bumba.lineārais_ātrums.y *= -1;
|
Tā būs skaidrāk? _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
snwlv
Joined: 10 Jan 2010 Posts: 86
|
Posted: Sun Jan 24, 2010 3:18 pm Post subject: |
|
mm nezinu kādēļ bumbina vel joprojam iet cauri kursoram"dēlim" |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun Jan 24, 2010 4:15 pm Post subject: |
|
Kāds tev tur kods tagad ir? _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
snwlv
Joined: 10 Jan 2010 Posts: 86
|
Posted: Thu Jan 28, 2010 7:27 pm Post subject: |
|
Nāku atklātībā,visu šo laiku meklēju atbildi uz paša jautājumu bet to neatradu. (vienkārši sakot negribēju izlikties par stulbeni)
Labi atvainojos snake5 ka sameloju diemžēl nezināju kā ielikt meiģināju bet neko vairāk kā errorus sava logā neredzēju.
Lieta tāda kad zinu pāris terminus,bet nezinu kā viņus salikt kopā.
Angļu valoda mācos uz 7 ,bet tas nav svarīgi.Vienkārši manās acīs tā ir kā mozajīka kura jāsaliek "kā lego klucīši" kur attiecigais klucitis iet savā vietā.
jo parati kad pats rakstu kautkādu kodu vai meiģinu iestarpiāt man izmet eroorus un nezinu kas būtu jadara lai tos izlabotu.
Snake5 teiktajā nezinu kā tu biji domājis kas ir centrs.
Code: | Texture2D bumba;
Vector2 pozicija, gravitacija; |
Code: | pozicija = new Vector2(350, 0);
gravitacija = new Vector2(1,1);//atrums
gravitacija.Normalize();
gravitacija = Vector2.Multiply(gravitacija, 1);
base.Initialize(); |
Code: | private void Sienas()
{
if (pozicija.X >= fons.Width - bumba.Width)
{
if (gravitacija.X > 0)
gravitacija.X *= -1;
}
if (pozicija.X <= 0)
{
if (gravitacija.X < 0)
gravitacija.X *= -1;
}
if (pozicija.Y >= fons.Height - bumba.Height)
{
if (gravitacija.Y > 0)
gravitacija.Y *= -1;
}
if (pozicija.Y <= 0)
{
if (gravitacija.Y < 0)
gravitacija.Y *= -1;
}
} |
Code: | spriteBatch.Draw(bumba, pozicija, Color.White); |
|
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Thu Jan 28, 2010 7:33 pm Post subject: |
|
Centrs = kreisais_augšējais_stūris + izmēru_puse.
Jeb tavā kodā apmēram tas būtu tā (būs noteikti kļūdas, bet cerams, ka vismaz varēs ideju saprast): Code: | centrs = pozīcija + Vector2( bumba.Width, bumba.Height ) / 2; |
_________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
|