Arbeiten mit Dim / Objekte löschen und neue einfügen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

BlitzMalte

Betreff: Arbeiten mit Dim / Objekte löschen und neue einfügen

BeitragDo, Aug 18, 2011 10:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute!!
Ich arbeite im Moment an einem Projekt, das soll eine Art "Farmville" Kopie werden nur bisschen nach meinen eigenen Vorstellungen gestalltet und mit Tieren die Rumlaufen das ist aber nicht so wichtig...

Also meine Problem liegt noch etwas weiter Vorne Smile ich wähle einen Button aus und dann klicke ich auf das Spielfeld und eine Pflanze wird gesetzt. Das habe ich mit 3 dimensionalen Array (DIM) gelöst erster Index seht für die Art der Pflanze, zweiter für die Nummer (ich zähle beim erstellen ein zahl hoch um zu sehen wieviele es gibt und dann übergebe ich ihm die Nummer beim nächsten erstellen damit der weiß welche die nächte Position ist im Array), und die dritte ist die Eigenschaft wie z.B. Bild, xpos, ypos usw. ...

So und jetzt zu meinem Problem die Pflanzen wachsen mit der Zeit und wenn sie fertig gewachsen sind soll man sie ernten können per Klick das wird auch alles erkannt nur er zeichnet sie dann wieder von vorne obwohl ich alle eigenschaften auf 0 setzte...

Dazu kommt noch fällt mir grade auf das ja irgendwann meine 1000 voll sind und dann muss ich ihm ja sasgen wo hin er die neuen bauen soll wenn er am ende angekommen ist :/

Ich weiß nicht ob ich das jetzt so gut erklärt habe ich kann jetzt grade nicht an den Code dran aber wenn ich später zuhause bin kann ich den auch noch Posten

Mein Code für den Array sieht ungefähr so aus:
BlitzBasic: [AUSKLAPPEN]
 Dim pflanze(10,1000,10)

BlitzBasic: [AUSKLAPPEN]
 Dim pflanze(art,nummer,eigenschaft)


Die Dim bearbeite ich immer mit der Bedingung (IF) wenn die eigenschaft (zeichnen) = 1 Dann wird es alls exsitet betrachtet und dann natürlich auch gezeichnet

Danke schon mal im Vorraus Smile
Was ist da nur falsch gelaufen?? O_o

Midimaster

BeitragDo, Aug 18, 2011 11:07
Antworten mit Zitat
Benutzer-Profile anzeigen
also für mich schreit das richtig nach Typen!

Da bist du in jeder Hinsicht flexibler und kannst auch urplötzlich neue Eigenschaften hinzufügen.

Möglicherweise läuft es sogar auf zwei Typen hinaus:

GATTUNG
der erste Typ katalogiesiert deine Planzenwelt. Pro Gattung gibt es einen Eintrag. dort steht alles Wissenswerte über das Verhalten der Planzesorte.

Typ, Bider , Wachstumsverhalten , Eßbarkeit, etc...

BlitzBasic: [AUSKLAPPEN]
Type GATTUNG
Field lfdNr% , SortenName$
Field Bild
Field Groesse% , Breite% , Hoehe%
Field WasserBedarf% , Wachstum% , ErnteZeit
Field Eßbarkeit% , Vermehrung%
End Type


INDIVIDUUM
Der zweite Typ katalogisiert alle Individuen, also jeden einzelnen Stengel solcher Pflanzen. Dort steht alles das, was das Individuum von den Anderen der selben Pflanzengattung unterscheidet:

Zu welcher Gattung gehöre ich? Wo stehe ich? Wann wurde ich gesät? etc...

BlitzBasic: [AUSKLAPPEN]
Type INDIVIDUUM
Field Sorte.Gattung
Field X% , Y%
Field SaatDatum%, PflegeBonus%
End Type


So sollte es dir besser gelingen, die geernteten Individuen wieder loszuwerden. Du löscht einfach das Element aus der INDIVIDUUM-Liste.

BlitzBasic: [AUSKLAPPEN]
; Beispiel für Aufnahme neuer Sorte:
NeuSorte.GATTUNG = New GATTUNG
NeuSorte\lfdNr=1
NeuSorte\SortenName="Gerste"
NeuSorte\ErnteZeit=90
NeuSorte\Bild=LoadImage(...

; Beispiel für Aussaat dieser Sorte:
For i=0 To 10
NeuSaat.INDIVIDUUM = New INDIVIDUUM
NeuSaat\Sorte = NeuSorte
NeuSaat\X=Rand(1,800)
NeuSaat\Y=Rand(1,600)
NeuSaat\SaatDatum=AktTag
Next

;Beispiel für tägliches Überprüfen
AktTag=AktTag+1
For Pflanze.INDIVIDUUM = EachIn INDIVIDUUM
DrawImage Pflanze\Sorte\Bild , Pflanze\X , Pflanze\Y
If Pflanze\SaatDatum < ( AktTag - Pflanze\Sorte\ErnteZeit )
Delete Pflanze
EndIf
Next
 

BlitzMalte

BeitragDo, Aug 18, 2011 11:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja so habe ich am Anfang auch gedacht vielleicht nicht mit 2 Typen, was warscheinlich noch eine Viel bessere Idee ist.
Das hat auch soweit alles funktioniert ich konnte auch Typen erstellen und die wurden auch gezeichnet aber immer nur 1 weil ich immer Probleme habe Typen zu Verwalten also hab ich das dann Abgebrochen und mit Dims gearbeitet weil ich damit ganz gut umgehen kann(hab ich gedacht Very Happy).

Wie gesagt ich werde mich nachher noch mal mit dem Code melden und dann auch nochmal den Type (Typen) einbauen und denn Code posten vielleicht kann ich mich dann besser erklären wo mein Problem bei Typen ist, damit ich die dann doch verwenden kann.

Vielen Dank Smile
Was ist da nur falsch gelaufen?? O_o

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group