Anonymní profil MartiniBaby – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil MartiniBaby – Programujte.comAnonymní profil MartiniBaby – Programujte.com

 

Příspěvky odeslané z IP adresy 86.49.75.–

MartiniBaby
C / C++ › [C#] Pokud se splní jeden if…
10. 5. 2011   #141772

Chyba jinde zřejmě není, když odstraním ten jeden směr, který mi to hned zpátky změní, tak se to odrazí v pořádku... jakmile ho tam vrátím, i když je else-if, tak proběhne a změní mi to zpátky na mínusovou Rychlost.Y a pokračuje to dál v místě bez odrazu. :(

MartiniBaby
C / C++ › [C#] Pokud se splní jeden if…
10. 5. 2011   #141769

return mi bohužel nepomohl

MartiniBaby
C / C++ › [C#] Pokud se splní jeden if…
10. 5. 2011   #141764

nemůžu EDITovat, tak doplňuji větu...

...Protože když zmením třebas rychlost z (-x, -y) na (-x, -y), tak se mi splní podmínka, která slouží pro rychlost (-x,-y) a znova změní směr rychlosti.

MartiniBaby
C / C++ › [C#] Pokud se splní jeden if…
10. 5. 2011   #141763

Zdravím, dělám hru v C#, konkrétně Arkanoid. Při kolizi míčku s cihlou zavolám metodu, která řeší kam se má míček odrazit. Směry mám vyřešené, včetně hrany, ale nemůžu přijít na to, jak udělat, aby když splním jednu podmínku (tj. změním směr), aby se nesplnili už ostatní podmínky a "vyjel" z té metody. Protože když zmením třebas rychlost z (-x, -y) na (-x, -y), tak se mi splníTady přikládám tu metodu, v které jsou řešeny odrazy. Předem děkuji za radu, jak tento problém vyřešit.

       public void OdrazMickuCihla(Sprite micek, Vector2 CihlaStretnuti)

{
if (micek.Rychlost.X < 0 && micek.Rychlost.Y < 0) //micek leti (-x;-y)
{
if (CihlaStretnuti.X < 37 && CihlaStretnuti.X > -21) //micek nalitne na strechu cihly
micek.Rychlost = new Vector2(micek.Rychlost.X, -micek.Rychlost.Y);
else if (CihlaStretnuti.X >= 37) //micek nalitne na hranu cihly
micek.Rychlost = new Vector2(-micek.Rychlost.X, micek.Rychlost.Y);
}

else if (micek.Rychlost.X < 0 && micek.Rychlost.Y > 0) //micek leti (-x;y)
{
if (CihlaStretnuti.X >= 37 ) //micek nalitne na hranu cihly
micek.Rychlost = new Vector2(-micek.Rychlost.X, micek.Rychlost.Y);
else if (CihlaStretnuti.X < 37) //micek nalitne na strechu cihly
micek.Rychlost = new Vector2(micek.Rychlost.X, -micek.Rychlost.Y);
}

else if (micek.Rychlost.X > 0 && micek.Rychlost.Y < 0) //micek leti (x;-y)
{
if (CihlaStretnuti.X <= -17) //micek nalitne na hranu cihly
micek.Rychlost = new Vector2(-micek.Rychlost.X, micek.Rychlost.Y);
else if (CihlaStretnuti.X > -17) //micek nalitne na strechu cihly
micek.Rychlost = new Vector2(micek.Rychlost.X, -micek.Rychlost.Y);
}

else if (micek.Rychlost.X > 0 && micek.Rychlost.Y > 0) //micek leti (x;y)
{
if (CihlaStretnuti.X <= -17) //micek nalitne na hranu cihly
micek.Rychlost = new Vector2(-micek.Rychlost.X, micek.Rychlost.Y);
else if (CihlaStretnuti.X > -17) //micek nalitne na strechu cihly
micek.Rychlost = new Vector2(micek.Rychlost.X, -micek.Rychlost.Y);
}

else if (micek.Rychlost.X == 0) //micek leti kolmo
{
micek.Rychlost = new Vector2(micek.Rychlost.X, -micek.Rychlost.Y);
}
}

MartiniBaby
C / C++ › [C#] Nalezení znaku ve stringu
10. 5. 2011   #141762

Díky za pomoc, vyřešeno :)

MartiniBaby
C / C++ › [C#] Nalezení znaku ve stringu
9. 5. 2011   #141750

funkce Contains mi dělá to samé, udělá mi to pouze jeden výskyt daného charu, ostatní už ne :(

MartiniBaby
C / C++ › [C#] Nalezení znaku ve stringu
9. 5. 2011   #141749

Bohužel tu funkci nemůžu stále najít, zatím to mám takhle



string path = Path.Combine(StorageContainer.TitleLocation, "sometext.txt");
StreamReader sr = new StreamReader(path);
string retezec = sr.ReadLine();
int Xodsazeni = 0;
if (retezec.IndexOf("o") != -1)
{
Cihlicky b = new Cihlicky(new Vector2(40, 20), new Vector2(20 + 45 * Xodsazeni, 30), new Vector2(graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight), new Vector2(4, 4), Content.Load<Texture2D>("cihla"));
cihla.Add(b);
Xodsazeni++;
}


každopádně mi to vypíše jednou, jakože tam je pouze jeden char 'o', přičemž tam jsou 4...

MartiniBaby
C / C++ › [C#] Nalezení znaku ve stringu
9. 5. 2011   #141747

Zdravím, mám řetězec string, například

string retezec "ddmmdXmmDDmXmDDmD";

A potřebuji prohledat znak po znaku ten řetězec, akorát s tím problémem, že potřebuju:
když narazím na char 'd', tak se mi přičte integer p++;
když narazím na char 'X', tak se mi odečte integer l--;
a podobně...

Předem děkuji za radu, jakej příkaz použít. IndexOf mi vyjede pouze první pozici toho charu, ale to je mi tady k ničemu. Nevím jakej příkaz jinej použít.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý