Problem mit Boss und Levelwechsel
Übersicht

![]() |
MegamagBetreff: Problem mit Boss und Levelwechsel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich bin's (schon) wieder.
Ich habe einige Probleme. In meinem Space-Shooter möchte ich einen Boss einbauen. Das Problem ist, dass zwei Gegner am Ende des Levels aus dem Bild fliegen. Ich habe Code: [AUSKLAPPEN] if entityx(e1\ent)>20 e1\boss=true
in der Update-Funktion. Die Frage: Wie kriege ich die Variable "boss" aus der Funktion, um mit ihr im Hauptprogramm arbeiten zu können? Bevor der Boss kommt muss im Level alles zerstört werden. Dazu habe ich die Funktion Code: [AUSKLAPPEN] Function destroy()
for s.T_star = Each T_star freeentity s\ent : delete s next for e.Enemy = Each Enemy freeentity e\ent : delete e next ;und so weiter für alle Types end function Da löscht sich aber über haupt gar nichts. Aber warum? Danke schonmal im Voraus für Antworten. |
||
![]() |
XeresModeratorBetreff: Re: Problem mit Boss und Levelwechsel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Blitz4D hat Folgendes geschrieben: Wie kriege ich die Variable "boss" aus der Funktion, um mit ihr
Mh... ganz simpel mit Return boss, oder halt gleich Return True.
im Hauptprogramm arbeiten zu können? Blitz4D hat Folgendes geschrieben: Da löscht sich aber über haupt gar nichts. Teste, ob die Funktion überhaupt aufgerufen wird, zb. mit debuglog![]() |
||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, aber wenn ich Return mache, kommt nichts.
Code: [AUSKLAPPEN] ;Codestück zur Veranschaulichung
Graphics3D 640,480 SetBuffer BackBuffer() Boss = False While Not KeyHit(1) text_Func() Flip UpdateWorld RenderWorld Text 0, 0, "Das ist Boss: " + Boss Wend End Function text_Func() Boss = True Return Boss End Function Boss ist aber immer 0 (also False). Und wegen Debuglog: Wie kann ich mir das anschauen? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Klar geht das nicht, wenn du den zurückgelieferten Wert nirgendwo speicherst...
Boss = text_Func() Achja, in Vollbild wirds Stop besser tun: Function destroy() Stop ; [Code] end function Das unterbricht das Programm sobald die Funktion aufgerufen wird... |
||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, ich hab's jetzt so:
Code: [AUSKLAPPEN] ;Die EnemyFunktion if entityx(cu\ent)>60 Boss1(True) end function ;Die Boss Funktion Function Boss1(value) Return value End Function ;Hauptschleife Boss = Boss1(False) Aber es wird immer nur False angegeben. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist ja auch logisch.
Ich weiß ja nicht was du mit der Funktion Boss1 erreichen möchtest, aber sie gibt immer den Wert zurück den du übergeben hast. Vielleicht solltest du eher eine globale Steuervariable benutzen? |
||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe keine Ahnung, was ich tun soll.
Ich habe zwei gleiche Types, und wenn einer (beide) aus dem Raum sind, sprich ihr X größer ist als 20, soll dann im Hauptprogramm Boss auf True gesetzt werden. Und ich weiß einfach nicht, wie... |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] aha = test(5)
print aha function test(bla) return 5*bla end function Wie dir schon gesagt wurde: wenn Du einen Rückgabewert verarbeiten willst musst Du ihn auch speichern. |
||
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 |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, aber die Funktion Boss() soll
ja nur True wiedergeben, wenn die X größer ist als 20 (siehe oben). Die andere Zeit wird False wiedergegeben. Das ist das Problem. |
||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Function Boss(x)
if x>20 return true end function |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] x=5
print boss(x) x=25 print boss(x) function boss(wert) if wert >20 then return true else return false endif end function Wo liegt das Problem? Solange Du einen integer zurückgibst ist das ohne Probleme lauffähig. Nur wenn Du was anderes zurückgeben willst musst Du im Functíon-Header angeben was zurückgegeben werden soll function bla$(gna) gibt einen String zurück |
||
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group