Frage zu Funktionen [erledigt]

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Elendil

Betreff: Frage zu Funktionen [erledigt]

BeitragSa, Mai 22, 2010 11:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey,
Ich code zurzeit wieder eine neue Funktion für mein Spiel. In dieser benutze ich zwei Cubes, zwischen die die ausgewählte Figur immer hin und her pendelt.
Nun zu meiner Frage: Ist es möglich diese Cubes lokal zu erstellen, damit ich gleichzeitig die funktion auch für eine andere figur aufrufen kann? Bisher hatte ich das immer so gelöst, dass ich am Anfang des Codes mehrere Globale Cubes mit unterschiedlichem Namen erstellt hatte. Damit bin ich aber ziemlich eingeschränkt un irgendwie finde ich ist diese Art das Problem zu lösen auch ziemlich unschön. Wenn ich in der Funktion nun aber die Cubes lokal erstellen lasse, wird das Spiel immer langsamer und langsamer.
Hoffe mein Problem wurde deutlich
Thx jetz schonmal =)
LG Elendil
  • Zuletzt bearbeitet von Elendil am Sa, Mai 22, 2010 19:05, insgesamt einmal bearbeitet

Xeres

Moderator

BeitragSa, Mai 22, 2010 11:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Alle Objekte die du erzeugst, bleiben so lange da, bis du sie mit FreeEntity wieder entfernst. Wenn du Lokal ein Cube erzeugst, musst du ihn also vor dem verlassen der Funktion wieder entfernen.
Sicher das du überhaupt Cubes brauchst? Arrow CreatePivot
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

flashmaxel

BeitragSa, Mai 22, 2010 13:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du die Entitys nicht direkt in der Funktion, in der du sie erstellst, wieder löschen kannst, weil sie noch eine Zeit danach weiter gebraucht werden, musst du irgendwie später wieder auf sie zugreifen können um sie zu löschen.
Das geht indem du sie in Variablen, Arrays oder Types speicherst oder ihnen Namen gibst die du später mit FindChild wieder finden kannst.
In jedem Fall musst du dich um das löschen selbst kümmern.

Elendil

BeitragSa, Mai 22, 2010 16:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
danke für den Tipp mit den Pivots, hatte mit dem Befehl noch nicht soviel zu tun.
Auch das mit dem löschen funktioniert jetzt.
Ich habe jetzt aber leider noch ein Problem, hoff ihr könnt mir dabei helfen >.<..
Es gibt noch eine Variable, die verändert wird, sobald die Figur den Zielstandpunkt erreicht (standartmäßig ist dieser am Anfang auf 0)
Wird der Zielstandpunkt erreicht, wird die Funktion beendet und die Variable wird auf 1 gesetzt. man kann nun mit einem anderen Bewegungsmodus (es gibt verschiedene) fortfahren. Für diese ist aber vorrausgesetzt, dass die Variable auf 1 ist. Hier liegt das Problem: Wenn ich die Variable als eine lokale in der Funktion erstelle, wird diese komischer Weise nicht mehr auf 1 umgestellt sondern bleibt immer auf 0. (In der Funktion habe ich die Variable so geschrieben: "local last_check"). Tut mir leid, falls mein Problem grad etwas sehr noobig is aber ich komm grad einfach nicht drauf >.<..
  • Zuletzt bearbeitet von Elendil am Sa, Mai 22, 2010 17:30, insgesamt einmal bearbeitet

Thunder

BeitragSa, Mai 22, 2010 17:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann es sein, dass du die Variable auch global deklariert hast? Dann würde das was passiert auf deine Beschreibung passen. In der Funktion wird die lokale Variable verändert, aber die globale bleibt auf 0.
Ein bisschen Code ist immer gut.


mfg Thunder

PS: Der Modus (Einzahl), die Modi (Mehrzahl)
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

Elendil

BeitragSa, Mai 22, 2010 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
ou >.< gleichmal verbessert mit dem modus ^^ danke. wollte eig. erst schreiben das es mehrere modi gibt, habs dann aber doch anders geschrieben o_O

zum problem: die variable gibts nur als lokale. Habs jetzt aber lösen können: Ich überprüfe einfach nochmal an anderer Stelle, ob der Wert schon verändert wurde. Wenn nicht wird er spätestens da geändert. Ist nicht wirklich optimal, muss ich wohl nochmal die nächsten Tage checken wo der Fehler liegt, aber mein eigentliches Problem, welches ich am Anfang hatte wurde ja gelöst also markiere ich den Eintrag als erledigt.
Hab auch nochmal einen Testlauf gemacht, mit 4 figuren die gleichzeitig laufen -> funktioniert alles genauso wie ichs mir vorgestellt hatte Smile Danke also an alle die mir geholfen haben Smile
LG Elendil

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group