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

Sienas spēlē

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



Joined: 10 Jan 2010
Posts: 86

PostPosted: 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 Very Happy
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
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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. Very Happy
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
snwlv



Joined: 10 Jan 2010
Posts: 86

PostPosted: Sat Jan 23, 2010 10:53 pm    Post subject:

isti neiebraucu tava teiktajā. Confused
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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
View user's profile Visit poster's website
snwlv



Joined: 10 Jan 2010
Posts: 86

PostPosted: Sun Jan 24, 2010 3:18 pm    Post subject:

mm nezinu kādēļ bumbina vel joprojam iet cauri kursoram"dēlim"
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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
View user's profile Visit poster's website
snwlv



Joined: 10 Jan 2010
Posts: 86

PostPosted: 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
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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
View user's profile Visit poster's website
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