auf types "direkt" zugreifen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

cjshadowmaster

Betreff: auf types "direkt" zugreifen

BeitragFr, Sep 10, 2004 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo allerseits !

ich komm direkt mal zu meinem problem:
ich programmiere z.Z. eine Userverwaltung für
ein Spiel.
Das ganze basiert auf Types.
Um auf einem bestimmten Type (z.B. mit dem Inhalt id = 34)
zuzugreifen besteht ja die Möglichkeit mit Hilfe einer
For-Schleife zu diesem Type zugelangen.
Aber geht das auch weniger "umständlich" / schneller.
Also "direkt" ?

ich hoffe das ich kein brett vor'm kopf habe, und die
frage nicht all zu unüberlegt war...

danke schonmal für antworten.
mfg, cjshadowmaster
Signaturen sind doof

ChrisAttack

BeitragFr, Sep 10, 2004 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
nein
B3D
MSVC++
DX9SDK
 

David

BeitragFr, Sep 10, 2004 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Eventuell mit einer Liste oder einem Array?
Die ID ist gleich dem Index und der Handle dem Wert des Feldes.

Edit: Das Verwalten der Liste ist dann allerdings etwas mehr Arbeit...

grüße
http://bl4ckd0g.funpic.de

Hubsi

BeitragFr, Sep 10, 2004 21:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine Möglichkeit wäre das Handle zu speichern:Code: [AUSKLAPPEN]
wert=Handle(var.DeinType)
und später wieder aufrufen:Code: [AUSKLAPPEN]
var.DeinType=Object.DeinType(wert)
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

David

BeitragFr, Sep 10, 2004 21:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Und was ist, wenn er viele von diesen Objekten hat?
Oder versteh ich dein Beispiel nur falsch?

Ich bin immer noch für das Array! :]

grüße
http://bl4ckd0g.funpic.de

Gina

BeitragFr, Sep 10, 2004 21:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu, als ich diese Frage mal gestellt habe, wurde mir

Handle und Object empfohlen. Bis auf das Beispiel hab ich es allerdings noch nicht weiter getestet...

Ich hoffe, es hilft dir. Type-Felder sind eben grundsätzlich etwas umständlicher zu handhaben, aber es gibt natürlich auch Vorteile, wie die flexible Größe. Und wenn es nicht gerade tausende Einträge, also User sind, sind sie immer noch schnell genug...

Gina.
www.jk-spiele.de

Hubsi

BeitragFr, Sep 10, 2004 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
David hat Folgendes geschrieben:
Hi!

Und was ist, wenn er viele von diesen Objekten hat?
Oder versteh ich dein Beispiel nur falsch?

Ich bin immer noch für das Array! :]

grüße
Ich sagte eine Möglichkeit Wink Kommt halt immer auch auf die konkrete Problemstellung an. Was schlussendlich besser ist muss er selbst entscheiden Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

cjshadowmaster

BeitragFr, Sep 10, 2004 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
das mit dem array wird glaub ich nicht funktionieren.
weil in dem type halt nicht nur die id, sondern auch
andere informationen drin stehen wie z.B. aktuelle koordinaten (x,y,z),
ip, animations-phase, usw...

oder sind dafür types völlig ungeeignet ?!
Signaturen sind doof
 

David

BeitragFr, Sep 10, 2004 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Code: [AUSKLAPPEN]

Graphics 640, 480, 32

Type User
   Field name$
End Type

Dim ObjectList.User( 3 )

;main

Init()

For i = 0 To 3
   Text 0, i * FontHeight(), ObjectList( i )\name$
Next

WaitKey

End

;functiontsteil

Function Init()
   For i = 0 To 3
      NewUser.User = New User
      ObjectList( i ) = NewUser
   Next
   
   ObjectList( 0 )\name$ = "Otto"
   ObjectList( 1 )\name$ = "Hans"
   ObjectList( 2 )\name$ = "Sigfried"
End Function


So meint ich das, bzw statt dem Objekt selbst kann man natürlich auch nur den Handle in das Array speichern.

Edit: @cjshadowmaster, wie kommst du darauf das ich Tipps gegen könnte die nicht funktionieren?? Razz

grüße
http://bl4ckd0g.funpic.de
 

cjshadowmaster

BeitragFr, Sep 10, 2004 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
@David
Danke für deine Idee.
Ich werd sie zwar nicht genau gleich umsetzen, aber
du hast mich auf eine Idee gebracht. Danke Smile

mfg, cjshadowmaster

PS: Man, die Antworten kommen ja echt schnell hier ! Shocked Very Happy
Signaturen sind doof
  • Zuletzt bearbeitet von cjshadowmaster am Fr, Sep 10, 2004 22:53, insgesamt einmal bearbeitet
 

David

BeitragFr, Sep 10, 2004 21:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

[ot]
Bitte, keine Ursache!
Ist ja auch das Blitzforum hier!!!

Ansonsten, willkommen im Forum!
[/ot]

grüße
http://bl4ckd0g.funpic.de

Ctuchik

BeitragSa, Sep 11, 2004 1:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Seh ich das richtig, dass wenn ich das Handle kenne, z.B. 34 ich so darauf zugreifen kann :
Code: [AUSKLAPPEN]
obj.meinType = Object.meinType(34)

??

Also theoretisch könnte ich von allen Type-Objekten auf die ich später schnell zugreifen will das Handle in einer Variable zwischenspeichern und dann so darauf zugreifen???
Zu den Nebenwirkungen gehören trockener Mund, Übelkeit, Erbrechen, Harnstau, schmerzhafter rektaler Juckreiz, Halluzinationen, Demenz, Psychose, Koma, Tod und Mundgeruch!
Magie eignet sich nicht für alle!
Fraget euren Arzt oder Apotheker!
  • Zuletzt bearbeitet von Ctuchik am Sa, Sep 11, 2004 10:52, insgesamt einmal bearbeitet
 

David

BeitragSa, Sep 11, 2004 7:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Genau so ist das!

@cjshadowmaster: Besser als ein Array wäre natürlich eine Liste o.ä. welche die Verwaltung der Einträge übernimmt.

grüße
http://bl4ckd0g.funpic.de

BladeRunner

Moderator

BeitragSa, Sep 11, 2004 9:45
Antworten mit Zitat
Benutzer-Profile anzeigen
@Ctuchik: Siehst du schon richtig.Nur: Objekt und handle sind undokumentierte Befehle, d.h. sie könnten beim nächsten BB-Update der Vergangenheit angehören...
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

sdjh

BeitragSa, Sep 11, 2004 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Handle(typ) gibt die Indexvariable eines Types zurückCode: [AUSKLAPPEN]
Type temp
Field t$
End Type
tmp.temp=new temp
x=handle(tmp)
print x

Object liefert einem direkt den Type von einem IndexCode: [AUSKLAPPEN]
Type temp
Field t$
End Type
tmp.temp=new temp
tmp\t$="Explosive"

tmp.temp=object.temp(1)
print tmp\t$


Und verbindet man beides, so kann man super Ressourcen verwalten:Code: [AUSKLAPPEN]
Type temp
Field t$
End Type
tmp.temp=new temp
tmp\t$="Explosive"
x=handle(tmp)
tmp.temp=object.temp(x)
print tmp\t$


Das wird zwar etwas komplizierter, ist aber CPU-shonend und lockert den Quelltext auf.
 

David

BeitragSa, Sep 11, 2004 15:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

@sdjh:
Jung, was glaubst du, um was es die ganze Zeit schon geht???

grüße
http://bl4ckd0g.funpic.de

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group