Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-11-2005, 23:03   #1 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
bit-operationen mit einer Zahl

Hallo Leute,
ich brauche eure Hilfe.

Ich programmiere grade an einem OnlineSpiel.
Ich möchte eine sagen wir 24 Bit-Zahl benutzen, um für 24 items eines Spielers jeweils ein Flag zu setzen ob der Spieler dieses Item geholt hat, oder nocht nicht.
Also 0001010110101010101111.....

Sinn der Sache ist es, somit Speicher in der Datenbank zu sparen.

Wie würdet ihr damit umgehen? Es soll schliesslich ganz einfach ausgelesen werden ob item/bit nummer X vorhanden ist, oder nicht
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net
georgem ist offline   Mit Zitat antworten
Alt 03-11-2005, 23:13   #2 (permalink)
pixel prostitute
 
Benutzerbild von bishop
 
Registriert seit: Mar 2004
Ort: berlin
Beiträge: 8.426
im allgemeinen (nicht auf flash direkt bezogen) würde ich hier den string, welcher ja lediglich ist, in die jeweiligen segmente splitten und einem array zuführen. da die positionen fix und somit vorher bekannt sind, sollte sich dies als doch sehr simpel erweisen
bishop ist offline   Mit Zitat antworten
Alt 03-11-2005, 23:25   #3 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
“..Speicher in der Datenbank zu sparen.."
??? ich glaube, damit kommst du um 20 jahre zu spät. die festplatten haben inzwischen tetabyte-grösse erreicht. was willst du denn da packen?

aber prinzipiel kann man auch mit AS sehr gut bit-weise arbeiten z.b:
ActionScript:
  1. var bit = 0x38;
  2. // setzt bit 0
  3. bit |= 1;
  4. trace(bit.toString(2));
  5. // setze bit 8
  6. bit |= 1 << 7;
  7. trace(bit.toString(2));
  8. //
  9. // testet, ob das bit0 gesetzt ist
  10. trace(bit & 0x01);
  11. // testet, ob das bit1 gesetzt ist
  12. trace(bit & 0x02);
  13. // testet, ob das bit2 gesetzt ist
  14. trace(bit & 0x04);
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 04-11-2005, 10:52   #4 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
Zitat:
Zitat von hgseib
“..Speicher in der Datenbank zu sparen.."
??? ich glaube, damit kommst du um 20 jahre zu spät. die festplatten haben inzwischen tetabyte-grösse erreicht. was willst du denn da packen?
Sorry , ich meinete nicht Datenbank-speicher, sondern servertraffic

Mir gehts darum ein MMOPRG (massive multiplayer) zu erschaffen wo jeder Aspekt der Datenübertragung und Speicherung auf sein optimales Minimum reduziert ist.
Schliesslich sind die monatlichen Traffic-Kosten eines Servers auch heute noch ein Problem dass es zu beachten gilt.


Danke hseib, diese &-Operationen hab ich gesucht. Funktioniert super
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net
georgem ist offline   Mit Zitat antworten
Alt 04-11-2005, 11:17   #5 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Wobei du dir da Grenzen setzt, da die Anzahl der Stellen einer Zahl relativ begrenzt ist. (32?) Übertragen wird ja eh wieder als String, oder?
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 04-11-2005, 11:56   #6 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
ja,
aber nehmen wir an, ich übertrage mit xml.

bei der Speicherung von 32 Integerzahlen wird der komplette xml-string natürlich weit grösser,
als nur die Speicherung der Zahl 4323454323

würde man AMFPHP zur Übertragung benutzen, wäre der Unterschied vielleicht noch grösser. Eine Zahl auch wenn sie nur Null/Eins ist, braucht halt trotzdem eine gewisse Anzahl Bytes, und eventuell noch tags(Xml), deshalb könnte es sich lohnen 32 davon in einen einzigen Integer reinzunehmen.
Man könnte ja dann mehrere solcher 32-Bit Sammelstellen laufen lassen....

Wie gesagt, das ganze soll der Serverperformance nützen, wo immer es geht.
Natürlich gibt es andere Spieldaten die nicht mit dieser Methode Sinn mache, z.B. Anzahl Geld.
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net
georgem ist offline   Mit Zitat antworten
Alt 04-11-2005, 12:13   #7 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Ich meinte nicht, mehrere Zahlen zu nehmen, sondern Strings, da hast du keine Begrenzung für die Länge.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 04-11-2005, 13:18   #8 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
ja okay, das stimmt schon

wieso nicht direkt strings zum schicken und auch beim speichern in der Datenbank verwenden. stimmt
Viel sparen durch packen lässt sich in diesem speziellen Fall also gar nicht ....

Mir kam ja schonmal der Gedanke sämtliche oft wechselnden Spielerdaten in einem einzigen String zu handlen, und diesen String dann jeweils beim laden in Flash zu verarbeiten.. Ich versuche mal in dieser Richtung weiterzudenken.
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net

Geändert von georgem (04-11-2005 um 13:20 Uhr)
georgem ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 21:06 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele