#9 MilanL
To je přesně to co asi nechápeš, ale o je v pohodě protože ono to asi nedokážu vysvětlit pořádně, ale fakt si představ že co +1 tak je odeslání na server ... tzv i kdybych chtěl tak nemůžu v cyklu přičíst třeba 10x a to samý když jdu dolů též -1 je akce co se přepošle tzv navýšení = komunikace client -> server -> do clienta se vrátí výsledek otevřeno neotevřeno a pokud neotevřeno provedu přičítáni znova ... Prostě to není klasický že bych to vše udělal v cklu a podle toho kontroloval na serveru. Jak jsem napsal to na pastebinu je to přesná simulace prostě co +1/-1 to komunikace přes server
Příspěvky odeslané z IP adresy 89.190.90.–
#6 MilanL
No právě proto sem žádal o pomoc tady, že já si nevím rady jak ybch to mohl zoptimalizovatz aniž bych musel přidávat další větve. Kdybych věděl jak to udělat tak se neptám zde :)
Samosebou to co jsi napsal jako první reakci tak ano to by takhle bylo možné, ale to tu proceduru neopustíš, tady právě jde o to, že co akce to komunikace se serverem viz pastebin
#2 MilanL
Díky za odpověd, ale tomuhle co řikáš jsem se právě chtěl kompletně vyhnout, abych to měl v kolekcích podle typu. Mám čistě 1 kolekci (batoh) kde mám všechny itemy. To co jsi napsal je klasický systém RPG. Napsal jsi kombinace rozlišování (to při aktuálním kodu je snadno providitelný) ovšem to není to co jsme přesně chtěl vědět. Ptal jsem se na systém Layeru a né systém jak nasadit itemy. Šlo mě ovšem o mechanismus abych nemusel psát zdlouhavé switch/case pro každý layerID a následně u ruk by to bylo o další 2 urovně Left.Hand a Right.Hand ... Což jsem eliminoval právě zmíněným kódem dolejc.
public object this[LayerID _layer]
{
get
{
switch(_layer)
{
case LayerID.Head:
return FHead;
case LayerID.Torso:
return FTorso;
case LayerID.Hands:
return FHands;
case LayerID.Legs:
return FLegs;
}
return null;
}
set
{
switch (_layer)
{
case LayerID.Head:
FHead = (LayerItem)value;
break;
case LayerID.Torso:
FTorso = (LayerItem)value;
break;
case LayerID.Hands:
FHands = (HandsLayer)value;
break;
case LayerID.Legs:
FLegs = (LayerItem)value;
break;
}
}
}
public HandLayer this[HandsLayerID _layer]
{
get
{
if (_layer == HandsLayerID.Left)
return this.Left;
else
return this.Right;
}
}
public LayerItem this[HandsLayerID _layer, HandLayerID _layer2]
{
get
{
if (_layer == HandsLayerID.Left)
return this.Left[_layer2];
else
return this.Right[_layer2];
}
}
public LayerItem this[HandLayerID _layer]
{
get
{
switch(_layer)
{
case HandLayerID.Bracelet:
return this.FBracelet;
case HandLayerID.Hand:
return this.FHand;
case HandLayerID.Ring:
return this.Ring;
}
return null;
}
set
{
switch(_layer)
{
case HandLayerID.Bracelet:
FBracelet = value;
break;
case HandLayerID.Hand:
FHand = value;
break;
case HandLayerID.Ring:
FRing = value;
break;
}
}
}
A pak k tomu přistupuju
this.property[LayerID.Head/Torso/Legs] = Item2Equip
a u ruk
this.property[LayerID.Hands][HandsLayerID.Left/Right][HandLayerID.Hand/Ring/Bracelet] = Item2Equip
Popřípadě kdybych chtěl kompletně celou postavu svlíknout tak stačí čistě tohle
foreach (LayerID lLayerID in Enum.GetValues(typeof(LayerID)))
{
if (lLayerID == LayerID.Hands)
{
foreach (HandsLayerID lHandsLayerID in Enum.GetValues(typeof(HandsLayerID)))
foreach (HandLayerID lHandLayerID in Enum.GetValues(typeof(HandLayerID)))
((HandsLayer)player.LayerItems[lLayerID])[lHandsLayerID][lHandLayerID] = null;
}
else
player.LayerItems[lLayerID] = null;
}
Ale přesto díky aspon za odpověd :)
Sice EntityFramework neznám, ale zkusil bych místo SingleOrDefault použít třeba First a zároven bych si zjistil jestli db.Genres opravdu má hodnoty co má mít. Popřípadě bych ten string otrimoval, jak z db tak ten co porovnáváš a porovnal StringComparison.InvariantCultureIgnoreCase
db.Genres.Where(x => x.Genre1 == genre).SingleOrDefault();
za
db.Genres.Where(x => Trim(x.Genre1).Equals(Trim(genre), StringComparison.InvariantCultureIgnoreCase).First();
Třeba to pomůže.
Projížděj čísla a porovnávej jestli aktuální číslo je větší než předchozí a zároveň menší než následující, jakmile tahle podmínka nebude splněna tak začíná nová posloupnost.
Popřípadě můžeš si vytvořit 2 listy (dyn. pole) Jeden list budeš ukládat čísla co přečteš a při nesplnění té podmínky vložíš celý list do listu takže vlastně budeš mít uložený všechny posloupnosti v polích.
Snad jsem do vysvětlil dobře :D
Dobrý den, narazil jsem na problém, který se mi děje poměrně často - zatím jsem ho ignoroval, ale už mě štve.
Jde o to, že u některých oken, které se zobrazí buď spuštěním aplikace a nebo pomocí Form.Show nedojde k zobrazení v jejich plné velikosti - musí se poté ručně roztáhnout.
Zde je přehled několika vlastností, které okna mají:
AutoScaleMode: Font
AutoSize: False
Téměř vždy nechávám vlastnosti, tak, jak jsou nastavené z počátku.
Částečně problém řešilo přestavení AutoScaleMode ovšem zde bych zrovna chtěl, aby vlastnost byla ponechaná na hodnotě Font. Neví někdo jak předem nastavit, aby se okno otevřelo v jeho plné velikosti (nikoliv ale maximalizováno).
Tento jev se mi stává dost nepravidelně - nezáleží na velikosti okna, co na něm je. Nemám tušení čím to může být.
#4 JMM
bohužel odkaz již nefunguje.
Potřeboval bych otáčet picturebox o zadaný úhel dle proměnné. Na internetu jsem něco našel, ale nedělá mi to, to co bych si představoval.
Otáčí se mi obrázek v pictureboxu, nikoliv celý picturebox. A je pro mě důležité, aby se to otáče dle mých požadavků, jelikož pod pictureboxem mám další grafické prvky.
Existuje na to nějaký jednoduchý kód?
Nakonec se mi to povedlo vyřešit mnohem elegantněji.
Pokud se použijí tyto mapové podklady:
http://www.openstreetmap.org/#map=19/50.95201/10.03840
Tak stačí volat odkaz s aktualizovanými souřadnicemi. Stránka se neaktualizuje, jen se posouvá mapa.
Pokud by je potřeba získávat nadmořskou výšku dané oblasti, tak to lze z těchto stránek:
http://maps.googleapis.com/maps/api/elevation/xml?locations=49.1363861,17.4321673&sensor=false
Zabýval jsem se tím a stále se motám v kruzích. Povedlo se mi script osekat natolik, aby při načtení do Webbrowseru nehlásil chyby.
Ale stále se mi nedaří z Visual Basicu vyvolat v HTML dokumentu funkci. To spojení mi nechce fungovat. Jeden z návrhů co jsme měl, tak že by VB zapisovalo proměnné do externího souboru a script by si je pravidelně četl, ale to mi bylo rozmluveno, že může dojít k dost nepředvídatelným stavům, když se dva programy budou prát o jeden soubor.
Zároveň jsem koukal, že i seznam má svou API pro mapy.cz - ale zdá se mi to téměř to samé, takže tudy bych si asi nepomohl.
Není tu někdo kdo již Javascript propojoval s VB?
Sice jsem ještě úplně neodstranil předchozí chybu, ale snažím se jí obejít. K tomu ale již potřebuji vyvolávat funkci z kódu VB.
Mohl bys důkladně rozepsat, jak z VB předávat parametry do JS?
Mám kód ve VB:
mapa_prohl.Document.InvokeScript("ZmenaPolohy", New Object() {poloha_y, poloha_x})
kde poloha y a x jsou Stringy obsahující výraz typu 47.026840 Při spuštění programu dojde k této chybě: "Odkaz na objekt není nastaven na instanci objektu."
V JS to vypadá takto:
function ZmenaPolohy(latA, lngA){
.....
}
latA a lngA jsem si vytvořil - potřeboval jsem odlišit proměnné.