GLBasic forum

Other languages => GLBasic - de => Topic started by: felix330 on 2011-Feb-22

Title: Einige Anfängerfragen
Post by: felix330 on 2011-Feb-22
Hallo,
Ich bin dabei ein recht einfaches iPhone-Spiel zu programmieren und inzwischen schon soweit gekommen, dass ich fast fertig bin. Dennoch ergeben sich noch einige probleme bei denen mir hoffentlich jemand helfen kann:
1. Im Spiel bewegen sich gegner von oben nach unten. Wenn die Gegner den unteren Bildschirmrand erreicht haben, wird ein Leben abgezogen. Soweit klappt das auch. Hier mal ein Code Ausschnitt:
Code (glbasic) Select
IF gegner.y > 960 AND start=1
leben = leben-1
ENDIF

Jetzt will ich ja aber nicht, dass sich der Gegner weiter nach unten bewegt, sondern das er gelöscht wird, und 1 Leben abgezogen wird. wenn ich jetzt aber ein "delete gegner" dahinterhänge wird das Leben gleich wieder zurückgerechnet. Wie kann ich es erreichen, dass 1 leben abgezogen wird, wenn der gegner 0 erreicht, aber die Anzahl der leben auch erhalten bleibt, wenn der Gegner gelöscht ist?

2. Das hängt mit dem oberen Problem zusammen. Wenn das Leben auf 0 fällt erscheint der Gameover bildschirm. Jetzt will ich aber auch, dass man aus diesem wieder zurückkehren kann. Praktisch wäre hier ein Befehl um die Gegnertypes zu leeren, da es im Moment so ist, dass die gegner praktisch an ort und Stelle bleiben, und so das Spiel nicht gescheit neustartet

So, ich hoffe ihr könnt mir dabei weiterhelfen. :)
Title: Re: Einige Anfängerfragen
Post by: S.O.P.M. on 2011-Feb-22
Soweit ich das beurteile, denkst Du nur etwas zu umständlich. Wenn der Gegner eine bestimmte y-Position überschreitet, dann lösche ihn und ziehe ein Leben ab, somit ist das in einem Gang erledigt und es dürfte keine Probleme mehr geben.
Zur Frage 2: ich würde es mit REDIM feld[0] machen. Dann sind alle Einträge gelöscht und Du kannst "frisch" beginnen.

Title: Re: Einige Anfängerfragen
Post by: felix330 on 2011-Feb-22
Danke, das hat mir weitergeholfen. Manchmal fällt mir die einfachste Lösung nicht ein. ;)
Den redim Befehl kannte ich noch nicht, hört sich aber nach dem an was ich suche. Damit muss ich mal ein bisschen rumexperimentieren.
Title: Re: Einige Anfängerfragen
Post by: Schranz0r on 2011-Feb-22
Alternativ Types anschauen...
Sind eigentlich recht einfach zu verstehen und übersichtlicher als alles mit DIM's zu machen.

Ist ne Frage des geschmacks...
Title: Re: Einige Anfängerfragen
Post by: felix330 on 2011-Feb-23
Mal noch eine Frage: Wie sieht es mit halbtransparenz in glbasic aus? Ich kann zwar mit gimp problemlos Halbtransparente Bilder erstellen (gibt hier ja auch ein Tutorial), aber wenn ich die Grafik einfüge, wird der halbtransparente Teil als Schwarz angezeigt. Muss man das vielleicht irgendwo aktivieren?
Title: Re: Einige Anfängerfragen
Post by: BumbleBee on 2011-Feb-23
ALPHAMODE? Press F1 ;)

Cheers
Title: Re: Einige Anfängerfragen
Post by: felix330 on 2011-Jun-13
Ich grabe diesen Thread mal wieder aus, da ich erneut nicht weiterkomme. Ich programmiere gerade ein Shoot'em up, bei dem die gegner auf einen schießen sollen. Das geht anfangs auch perfekt, allerdings gibt es das seltsame Problem dass mit der Zeit die Kugeln der Gegner immer langsamer werden, und schließlich sogar langsamer als die Gegner selbst fliegen. Ich kann aber einfach keinen Fehler im Code finden. Hier mal der betreffende Codeschnipsel:
Code (glbasic) Select
IF gegner.z=30 AND gegner.t<gegner.strength AND gegner.x>30  //gegnerschussfunktion

gegnerschussneu.x=gegner.x+4
gegnerschussneu.y=gegner.y+16

DIMPUSH gegnerschuss[],gegnerschussneu

gegner.z=0

ENDIF

FOREACH laser IN gegnerschuss[]

DEC laser.x,1.1
IF laser.x < -8 THEN DELETE laser

DRAWSPRITE 1,laser.x,laser.y

IF BOXCOLL(laser.x,laser.y,8,8,spielerx,spielery,61,35)

leben=leben-1
DELETE laser

ENDIF

NEXT
Title: Re: Einige Anfängerfragen
Post by: Schranz0r on 2011-Jun-14
Schwer so zu sagen, schreib mir mal ne PM und lade mal bitte dein ganzes Projekt rauf.
Title: Re: Einige Anfängerfragen
Post by: Kitty Hello on 2011-Jun-20
Werden die Schüsse aus dem Array rausgenommen, wenn die aus dem Bildschirm fliegen?
Title: Re: Einige Anfängerfragen
Post by: felix330 on 2011-Jun-30
ok, danke. Das Problem hat sich gelöst. Jetzt habe ich aber ein größeres Problem, das schon bei 2 meiner projekte aufgetaucht ist. Wenn ich meine Projekte normal kompiliere klappt alles perfekt. Allerdings soll ich, um das Projekt für Android zu kompilieren, die "Platform optionen setzen". Das Problem: Wenn ich bei Projekt -> Optionen auch nur irgendetwas ändere (oder sogar garnichts ändere und nur auf übernehmen klicke), resultiert das darin, das wenn ich das projekt danach testen will nur noch ein schwarzer Bildschirm kommt! Ich kann mir einfach nicht vorstellen dass ich da was falsch gemacht haben soll, da das schon ohne Änderung durch bloßen klick auf übernehmen geschieht. Die einzige Möglichkeit die ich gefunden habe, das Projekt danach wieder zum funktionieren zu bekommen, war den Programm code zu kopieren und in ein neues Projekt einzufügen wo wieder alles perfekt ging (Es sei denn natürlich ich versuche wieder die Optionen zu verändern)
Title: Re: Einige Anfängerfragen
Post by: Kitty Hello on 2011-Jul-01
Wenn Du schrwaren Screen hast, zip mal alles zusammen und poste das hier.

Title: Re: Einige Anfängerfragen
Post by: Schranz0r on 2011-Jul-01
Bist du mit dem V10 RC unterwegs?
Wär evtl. noch interessant zu wissen.
Title: Re: Einige Anfängerfragen
Post by: felix330 on 2011-Jul-01
hm, ok, ich glaube ich habe den Grund gefunden. Der Projektordner meines Projekts hieß vorher "Wiz shmup 2.app". Scheinbar verändert eine Verändeung der Optionen den Ordner so, dass die Leerzeichen durch _ ersetzt werden. Ich habe also plötzlich einen zweiten Ordner "Wiz_shmup_2.app". Da sind jetzt keine Mediadateien drin, also kommt auch nur ein schwarzes Bild. Genauso werden ' in _ umgewandelt.

QuoteBist du mit dem V10 RC unterwegs?
Wär evtl. noch interessant zu wissen.
Ja, ich habe gerade angefangen v10 zu benutzen.
Title: Re: Einige Anfängerfragen
Post by: Schranz0r on 2011-Jul-01
Ja das mit dem _ ist absicht so, da manche Geräte keine Leerzeichen abkönnen...
Title: Re: Einige Anfängerfragen
Post by: felix330 on 2011-Jul-25
Ich versuche gerade ein Programm für Android zu kompilieren, und soweit habe ich da auch schon Fortschritte gemacht. Plötzlich geht nun das Programm aber garnicht mehr, und wenn ich das Spiel aus dem Menü aufrufen will stürtzt es ab, und die Ausgabe
Code (glbasic) Select
*** Unhandled exception ***
   EXCEPTION_ACCESS_VIOLATION
erscheint. Das seltsame ist, dass das relativ plötzlich aufgetreten ist, ohne dass ich etwas geändert hätte. Weiß jemand woran das liegen kann? Ich könnte auch mal das gesamte Projekt hochladen.
Title: Re: Einige Anfängerfragen
Post by: Kitty Hello on 2011-Jul-26
Kenne ich. Rufen bei mir täglich Leute an: "Ich hab nix geändert, gestern ging's nocht, heute geht nix mehr". Stellt sich dann raus, dass sie an einem anderen PC sitzen oder so...

Spaß beiseite: Mach in den Code to STDOUT Befehle rein und schau wo's genau hängt. Evtl. kommst Du dem Crash dann auf die Spur?
Title: Re: Einige Anfängerfragen
Post by: Schranz0r on 2011-Jul-26
DEBUG an ;)
Title: Re: Einige Anfängerfragen
Post by: felix330 on 2011-Jul-26
So, die fehlerhafte Zeile habe ich gefunden. Ich bin mir jedoch immer noch nicht sicher, warum die einen error verursacht hat.
Code (glbasic) Select
IF klaktiv=1 AND KEY(29) OR GETJOYZ(-9)
IF INIGET$("einsts","sound")=1
PLAYSOUND(2,0,1)
ENDIF
klaktiviert=1
klaktiv=0
ENDIF

Hierbei war offenbar das GETJOYZ(-9) das Problem. Das sollte ursprünglich ein Test für den Accelerometer des iPhone sein. Den habe ich zwar noch nicht ausprobiert, aber vorher hat der Befehl zumindest keinen Fehler erzeugt. Hat sich vielleicht in den neueren Version irgendetwas geändert, sodass das jetzt nicht mehr geht?

EDIT: Wenn ich mir das nochmal durchlese, habe ich glaube ich den Befehl falsch verwendet. War also mein Fehler, sorry.
Title: Re: Einige Anfängerfragen
Post by: Schranz0r on 2011-Jul-26
:) immer schön wenn man den Fehler selber findet!
Title: Re: Einige Anfängerfragen
Post by: Kitty Hello on 2011-Jul-26
 GETJOYZ(-9) <- also das Gerät Nr. -9. Äh, ich hab hier keine negativen Zahlen abgefangen. Wäre minimaler Speed impact. Ich lass es so, OK?
Super selbst gefunden. So wird man zum Profi.