Einige Anfängerfragen

Previous topic - Next topic

felix330

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. :)

S.O.P.M.

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.

Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

felix330

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.

Schranz0r

Alternativ Types anschauen...
Sind eigentlich recht einfach zu verstehen und übersichtlicher als alles mit DIM's zu machen.

Ist ne Frage des geschmacks...
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

felix330

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?

BumbleBee

ALPHAMODE? Press F1 ;)

Cheers
The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit

felix330

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

Schranz0r

Schwer so zu sagen, schreib mir mal ne PM und lade mal bitte dein ganzes Projekt rauf.
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Werden die Schüsse aus dem Array rausgenommen, wenn die aus dem Bildschirm fliegen?

felix330

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)

Kitty Hello

Wenn Du schrwaren Screen hast, zip mal alles zusammen und poste das hier.


Schranz0r

Bist du mit dem V10 RC unterwegs?
Wär evtl. noch interessant zu wissen.
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

felix330

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.

Schranz0r

Ja das mit dem _ ist absicht so, da manche Geräte keine Leerzeichen abkönnen...
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

felix330

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.