Du bist nicht angemeldet.

Eine Antwort schreiben

Schreibe deinen Beitrag und versende ihn
Beitragsoptionen
Bist Du ein Mensch oder ein Roboter ?

Verifizierung, dass diese Aktion durch eine reale Person vorgenommen wird und nicht von einem Programm.

Zurück

Themen-Übersicht (Neuester Beitrag zuerst)

Gast2
14.04.2014 17:39

Wie gesagt, hatte ich das Gefühl, daß bei lidl das Netz stabiler ist.

Ronny
14.04.2014 15:58

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

Gast2
14.04.2014 15:26
Ronny schrieb:

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;)

Ronny
14.04.2014 15:24

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

Gast2
14.04.2014 13:45

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?

Ronny
14.04.2014 12:12

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

sushiTV
14.04.2014 12:01

@Internetstick

hi Gast2, für 3 euro nochmals 5GB das ist nicht schlecht tongue

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~

Gast2
13.04.2014 23:04

@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.

Ronny
13.04.2014 18:49

@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 biggrin

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

sushiTV
13.04.2014 11:29

@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~

sushiTV
13.04.2014 10:36

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 tongue

@Methoden und Functionen

Methoden wenn ich Daten manipulieren möchte und Functionen wenn ich nur auf Werte Zugreife und Zurückgebe?

gruß
~s~

sushiTV
13.04.2014 10:08

okay,

das CLS, da hätte ich auch drauf kommen können gw_smiley_zwinkern
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 gw_smiley_zwinkern, 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 gw_smiley_zwinkern
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 gw_smiley_zwinkern

- 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 gw_smiley_zwinkern

gruß
~s~

Ronny
13.04.2014 09:48

@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 tongue

bye
Ron

sushiTV
12.04.2014 18:39

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 tongue

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 smile

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.

Ronny
11.04.2014 14:55

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