Du bist nicht angemeldet.
Wie gesagt, hatte ich das Gefühl, daß bei lidl das Netz stabiler ist.
Wenn: Selber Rechner, selbe Software - und "langer Messzeitraum", dann kannst Du dir deine eigenen Schluesse ziehen.
Ich weiss nicht, ob Du auch messen kannst, bei dem Du besseren "Empfang" hast- vielleicht hat der eine haeufige kurze Verbindungsabbrueche und "macht mehr" um die Verbindung aufrecht zu erhalten.
bye
Ron
b) die "Gegenstelle" rechnet falsch (dein Anbieter rundet auf)
Hm. Statt "falsch" würde ich "anders" sagen;)
Selber Rechner, selbe Software...
Verschiedene Sticks. Aldi gut für mich, Lidl mehr für sich;)
Der Stick ist da wohl weniger das Problem
a) Software auf deinem PC (die ungefragt Zeugs hochlaedt/runterlaedt - Updates usw.)
b) die "Gegenstelle" rechnet falsch (dein Anbieter rundet auf)
bye
Ron
Nach dem Lidl-Zähler hätte ich die 5 GB innerhalb von 2 Tagen normalen Datenverkehrs (also ohne Downloads oberhalb 2 MB) einfach mal geschafft. Während der Aldi-Stick eigentlich nur selten am Monatsende rumzickt.
Aber traffic-monitore... naja, muß ich mal sehen, kenne da nix richtiges... Meinst Du, mer kann den lidl-stick erziehen?
Ihr solltet wohl mal schauen, was Eure Leitungen so auslastet... TrafficMonitore duerfte es ja einige geben.
Auch ist interessant wie Eure Anbieter angefangene Megabytes abrechnen - oder in welchen "Schritten" abgerechnet wird (100kb Schritte).
Eure Browser zeigen auch, ob ein Bild einer Webseite aus dem Cache kommt - oder immer artig mit abgerufen wird.
Virenscannerupdates waren frueher mal klein - heute flutschen da ein paar mehr MB durch die Leitung.
Aber wie gesagt: TrafficMonitore
bye
Ron
@Internetstick
hi Gast2, für 3 euro nochmals 5GB das ist nicht schlecht
Warum? aus unerklärlichen gründen habe ich diesen monat (zyklus) mein Datenvolumen schon aufgebraucht und muss nun halben monat mit der langsamen rate mich zufrieden geben. (das ist mitunter nicht so fein)
~s~
@sushiTV internetstik
mal kurz etwas abseits der Strang-Idee...
Ich habe die Lidl-netz-Variante angeschaut.
Echt heftig.
Einerseits scheint das Netz irgend stabiler, sauberer, schneller zu sein.
Andererseits habe ich ohne irgend groß zu saugen in dreieinhalb Stunden die 500 MB zusammengehabt und dann gings runter auf 64kbs.
Habe bei Alditalk so'ne kleine Tooltipanzeige (unter Windows) wo ein- und ausgehende Datenmenge registriert ist. Da kommt in der Zeit nicht so fett zusammen, glaube ich.
Ich mußte jetzt noch mal nachschauen bei Alditalk: Internet XL flatrate: 14,99 € 7,2Mbs bis 5 GB dann runter auf 256kbs. Das geht zumindest noch zu ertragen bei sparsamen Webseiten.
Und die haben jetzt ein Angebot, daß mer durch Zahlung von 3 € die Datenmenge wieder auf Null setzen kann. Klingt fair.
Also ich behalte das Lidl so als Notnagel, glaube ich. Gibt auch Gegenden, da hat das Aldinetz (eplus) recht geringe Übertragungsraten, vielleicht läuft's dann über lidl (O²?) besser.
Also in der Großstadt dürfte Aldinetz auf alle Fälle von Vorteil sein, denke ich.
@UpdateScreen
Du kannst das machen wie du moechtest: wenn alle deine "InGameScreens" Zugriff auf TMenu haben sollen - dann mach es so wie du es gerade gemacht hast.
Man kann aber auch wieder delegieren ... wechselst Du den Screen, wird automatisch "FadeToScreen" mit entsprechenden Werten gesetzt (bspweise ein global "goToScreen" innerhalb TInGameScreen - ist der gesetzt, wird im "basis"-Update der Fader losgeschickt ... und dann das "goToScreen" genullt).
@Rekursiv:
Naja das funktioniert ja an sich.
Aber "UpdateScreen" wuerde meines Erachtens ja den Screen aktualisieren - also bspweise wird innerhalb dieser Methode irgendwas raumspezifisches gemacht.
Nun wird ja UpdateScreen "rekursiv" behandelt ... also wird fuer jedes "Submenu" die Screenbehandlung durchgefuehrt ... bloed
Besser also:
TScreen
Method Update()
...
Screen.UpdateMenus()
'oder - "abstrahierter" also getrennter
rootMenu.Update()
'oder - falls du nur "screen eigene haben willst
myRootMenu.Update()
....
End Method
End Type
Nicht immer versuchen, alles abstrakt zu gestalten, kann durchaus auch gute Seiten haben - hier vermute ich aber, dass Du da irgendwann in eine solide Problemmauer rennen wuerdest.
Screens koennen ohne Menues funktionieren - die Menues auch ohne Screens, warum also Abhaengigkeiten einfuehren?
Screen -> Update ruft "basismenue.update()" auf (screen "benutzt" menu), dieses "Basismenue" kuemmert sich dann selbststaendig darum, alle Untermenues aufzurufen (rekursiv):
TMenu.Update() -> Verarbeitung Menu + Aufruf "submenu.Update()" fuer jedes submenu.
Dein Ansatz momentan ist folgender: Ist ein Menuepunkt aktiv, zeichne ein dazugehoerigen "Screen" (oder update ihn).
Meines Erachtens "logischer" ist: Die Mainloop zeichnet immer den aktuellen Screen. Jeder Screen zeichnet und aktualisiert immer das gerade angezeigte Menu (momentan ist es das "komplette" Menu - und halt die aufgeklappten Stellen).
Klickt man auf eines dieser Menuepunkte, dann sollte einfach der aktuelle Screen geaendert werden (fade to).
Die "Screens" muessten dann also gar nicht mit den Menupunkten interagieren. Die Menuepunkte dienen ja einzig dem "Spieler" vor dem Bildschirm zur Navigation. Was ist, wenn Du Shortcuts einfuehren willst?
Also nochmal der Grundsatz:
GameLoop:
- kuemmer dich um den aktuellen Screen
- - der aktuelle Screen basiert auf TInGameScreen
- - TInGameScreen-Screens rufen bei ihrem Update das Update() des rootMenu auf (was dann rekursiv andere abruft)
- - innerhalb der menu-updates werden klicks ausgewertet und entweder der aktuelle screen gesetzt - oder :
- - nach "rootMenu.Update" innerhalb der Screen.Update() wird geschaut ob
- - - eine Taste den Befehl gibt den Screen zu wechseln
- - - ein geklicktes Menue den Befehl gibt ...
- - - ein Spielereignis den Befehl gibt ...
@Fading:
Naja, du ueberschreibst einfach die von einem Screen genutzten "Zeiten". Wenn Du das fuer alle machen willst, ueberschreibst Du das sozusagen schon in deinem TInGameScreen.
Die Zeit alleine kannst du ja schon in "FadeToScreen" steuern:
Method FadeToScreen:Int(screen:TScreen, duration:Float=0.2, allowScreenUpdate:Int=True)
Wenn Du einen eigenen "Effekt" machen willst - musst du die Faderklasse aehnlich den TScreens erweitern ("TMyFader extends TScreenFader").
Du kannst ja nicht viel kaputt machen: einfach experimentieren.
@Functions/Methods:
Methods sind wie Funktionen mit "spezifischer Instanz". Eine Funktion kann nur auf "Const, Global ..." eines "Type" zugreifen: Sachen die sich alle Instanzen teilen. Die Methode hingegen, kann auf eben diese Eigenschaften zugreifen - aber auch die ihr zugewiesenen "Field"-Eigenschaften.
bye
Ron
@Rekursion
In der TScreenIngame habe ich das Update
Method Update:Int()
For Local m:TMenu = EachIn linkesMenu.subMenus
If m.IsActive() And Not (m.name = GetScreenManager().GetCurrent().GetName() ) Then
GetScreenManager().GetCurrent().FadeToScreen( GetScreenManager().Get(m.name) )
EndIf
If m.HasActiveSubMenu() Or m.alwaysDisplaySubMenus Then
For Local k:TMenu = EachIn m.subMenus
If k.IsActive() And Not (k.name = GetScreenManager().GetCurrent().GetName() ) Then
GetScreenManager().GetCurrent().FadeToScreen( GetScreenManager().Get(k.name) )
EndIf
Next
EndIf
Next
.
.
.
End Method
umgeschrieben auf:
Method UpdateScreen:Int(Sender:TMenu)
For Local m:TMenu = EachIn Sender.subMenus
If m.IsActive() And Not (m.name = GetScreenManager().GetCurrent().GetName() ) Then
GetScreenManager().GetCurrent().FadeToScreen( GetScreenManager().Get(m.name) )
EndIf
If m.HasActiveSubMenu() Or m.alwaysDisplaySubMenus Then
UpdateScreen(m)
EndIf
Next
End Method
Method Update:Int()
UpdateScreen(linkesMenu)
.
.
.
End Method
Somit ist es Rekursiv und würde das menü auch bei tieferer Verschachtelung durcharbeiten ....
Wenn ich das Richtig verstanden habe?
Das ganze könnte man aber auch über onClick oder sowas im TMenü machen *g*
~s~
Noch eine Frage zum FrameWork und den Bildschrimwechseln:
Um an dem "FadeTo" etwas zu ändern muss ich dann tatsächlich Werte in den ensprechenden Frameworkfiles ändern? Ich meine damit zum beispiel Geschwindigkeit des Fadens?
Am liebsten wäre mir ja, das nur die Bildschrimpixel "gefaded" werden, die sich auch ändern (xor ?) aber das geht mir dann auch schon wieder zu sehr in die grafikprogrammierung
@Methoden und Functionen
Methoden wenn ich Daten manipulieren möchte und Functionen wenn ich nur auf Werte Zugreife und Zurückgebe?
gruß
~s~
okay,
das CLS, da hätte ich auch drauf kommen können
hatte gestern aber keine lust mehr danach zu suchen *g*
Nach dem ich nun ein Rect Zeichne, ist alles normal ... auch die Schrift ...
die sah halt komisch aus, auf grund des fehlenden CLS (übermalen) wohl.
Das mit dem DefaultMenü lässt sich auch lößen , natürlich gibt es so ein fehler wenn gar kein menü gesetzt ist. Aber dazu werde ich wohl sowieso noch einen extra Screen machen und einfach ein TMenü, welches dann standardmäßig benutzt wird, wenn im menü keins aktiv.
Aber auch dafür ist wohl am besten, das gleich so zu machen wie du beschrieben hast, in dem ich eine Get Funktion da hinzufüge.
So wirklich durchdacht ist das ganze "Projekt" ja auch gar nicht
Mache das ja jetzt nach Learning by Doing ... und mal sehen was bei raus kommt *lol*
Ich habe noch keinen Plan, welche Daten ich intern alles brauche und wie ich diese Handle
- Tabelle für Mindestöchslewerte habe ich von deutscheweine.de
- Ertrag für Rebsorten und Standorte kann ich vielleicht auch aus Tabellen ermitteln hl/ha
Aber vielleicht sollte ich mich einfach doch ersteinmal an dem Original halten und das versuchen umzusetzen
gruß
~s~
@Maus bei Taste 3:
"AutoCls" ist auf "False" gesetzt. Die App loescht also nicht von sich aus den Bildschirm. Das macht man, wenn man den kompletten Bildschirm schon mit Grafiken neuzeichnet (Performance-Ding). Du zeichnest in dem Screen aber nix - deswegen sieht man noch den "alten" Grafikinhalt.
in dem Screen-Render ein "CLS" oder "autoCls" auf "True" setzen (sollte nicht all zu viel ausmachen - du lastest das System ja ne aus).
winzdig.bmx: Zeile 53,54:
'we use a full screen background - so no cls needed
autoCls = False
winzdig.bmx: Zeile 311
GetScreenManager().GetCurrent().FadeToScreen( GetScreenManager().Get(TMenu.activeMenu.name) )
'besser waere wohl:
If TMenu.activeMenu
GetScreen...
EndIf
Das Problem ist: wenn "activeMenu" nicht gesetzt ist (Null), dann erzeugt der Aufruf von "activeMenu.name" einen "segfault" (Speicherzugriffsfehler). Du kannst natuerlich bei "TMenu" einen "Getter" einbauen:
'keine Methode, wir wollen ja nur auf die globale Variablen zugreifen
Function GetActive:TMenu()
if activeMenu then return activeMenu
'hast du ein "defaultMenu" - bspweise einen screen des root menue?
if defaultMenu then return defaultMenu
return Null
End Function
Solange du ein "defaultMenu" (global defaultMenu:TMenu) in TMenu definierst, kannst Du dann den Getter benutzen um "sicherzustellen", dass nicht Null zurueckgeliefert wird.
"DrawText" nimmt die Schrift, die "als letztes" mit "LoadImageFont" gesetzt worden ist.
Ich bau hier eine "bitmapfont"-Demo zusammen, da laeuft das n bissl anders ab, fehlt aber noch meine Interpolationsklasse damit man "bouncing"-Texte einbinden koennte
bye
Ron
Download unter: http://www.workupload.com/file/tJqs7Kol
Inhalt: *.bmx für den aktuellen stand so wie exe und grafiken
Zu Beachten: um zu Compilieren muss das Dig-Framework in den Unterordner <Dig> noch gebracht werden.
Was habe ich gemacht?
Ordner angelegt
- <Dig> da ist das Digidea Framework drin
- <res> da sind die Resourcen drin und darin <config>, <fonts>, <gfx>
app.menu.bmx ausgegliedert da ist das Menü drin
Maus hat jetzt den TVT Mauszeiger
beim anklicken eines Menüpunktes wird jetzt jeweils ein anderer TScreen angezeigt
Habe dann heute mal bissel mit dem Dig-Framework probiert da etwas zu machen, du hast ja das Demo extra noch erstellt.
Habe halt für jeden Menüpunkt ein TScreenIngame erstellt. Im Update des TScreen habe ich dann eine Schleife wo alle Menüpunkte abgefragt werden ob diese Aktiv sind, wenn ja und der Aktuelle Bildschirm nicht der selbe ist, dann soll dieser gezeichnet (FadeTo) werden.
Da ich den Screnns die gleichen namen gegeben habe wie den Menüpunkten, konnte ich das mittels variablenabfrage (name) recht leicht in der schleife machen.
Ist vielleicht nicht richtig so, war aber für mich in dem moment das naheliegenste
Ich müsste das ganze dann vielleicht aber etwas mehr entkoppeln und logischer machen.
gruß
sushi
ps. was mich etwas irritiert, ich dachte nun die MyApp sei das Hauptgerüst ... wenn ich aber die Taste "3" für "Hauptbildschirm" klicke, dann benutzt er nicht die geladene Fontdatei und die Maus verhält sich auch komisch
Habe da wohl vieles immer noch nicht kappiert *g*
Genauso wie Global ... ich dachte diese Variablen seien Programmübergreifend dann für jederman sichtbar .... scheinbar ist das aber auch nicht wirklich so.
(wobei, ich habe da mal etwas von "Common deklarieren" oder so etwas ähnlichem gelesen ... daran könnts vielleicht liegen.
Ich habe "Dig" aktualisiert - neu ist nun auch ein "samples/screendemo"-Projekt.
Das zeigt auf hoffentlich "uebersichtliche" Weise, wie man mit den Screens umzugehen hat.
In den "RenderInterface" kannst Du dann bspweise dein Menu zeichnen - oder halt nicht (falls es ein "Ubersichtsbildschirm" ist ... Rundenzwischenbericht oder so).
Experimentiere ruhig, wie du die Bildwechseleffekte wegbekommst, schneller machst oder oder.
bye
Ron