Brauche dringend Hilfe (Fehler bei der Kollision)
Übersicht

MuleiBetreff: Brauche dringend Hilfe (Fehler bei der Kollision) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo ich bin erst seit ein paar Monaten dabei und Arbeite seit einer Woche an ein Weltraum- Shooter. Ich bin also noch ein totaler Anfänger in Blitz Basic. Und jetzt bin ich halt an einer stelle angelangt an der ich nicht weiter weiß.
Ich habe erst mal nur verschiedene dinge programmiert und nun wollte ich halt die kollisions- abfragen programmieren. Aber schon bei der ersten gibt es ein Fehler den ich mir nicht erklären kann. Es geht darum das feindliche schiffe „Alien1“ von oben nach unten fliegen und wenn ich dann eine Rakete abschieße erscheint die explosions- Animation ohne das die Rakete den Feind berührt hat, oder das feindliche schiff verschwindet und taucht irgendwo woanders auf. Am besten man schaut sich das mal selber an. Ich habe schon alles Mögliche probiert aber nun bin ich halt an meine grenzen gestoßen und weiß nicht mehr weiter. Deshalb hoffe ich das mir welche Helfen können die mehr Erfahrung haben als ich (also alle ![]() Es währ nett wenn ihr mir eure Problemlösungen oder Vorschläge auch per E-Mail schicken könntet. Danke im Voraus masterwoyack@yahoo.de BlitzBasic: [AUSKLAPPEN]
~Editiert~ Code sprengt Layout. Angepasst. MfG D2006 |
||
![]() |
HellfrontBetreff: Bilder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Könntest du mal Bilder posten damit man das Spiel auch starten kann
so dass man sich das ganze beasser vvorstellen kann? |
||
Omenaton_2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also, ich kann jetzt nicht so genau den Code lesen, daß ich richtig helfen könnte, aber ich kann schon mal paar Tipps geben.
Ich habe festgestellt, daß man mit "SeedRnd", wenn man es zu häufig in Schleife benutzt Probleme bekommen kann. Setz diesen Befehl außerhalb der Schleife, es reicht das nur ein Mal am Anfang zu machen. Sonst werden die Zufallszahlen anstat unterschiedlich, sehr ähnlich, weil der Random-Wert aus der fast gleichen Millisecs Zeit gelesen wird. Auch sont hatte ich schn mal irgendwelche schwer erklärbare Ungereimtheiten mit Random Werten. Mir gefällt die Code-Struktur nicht und es gibt für meinen Geschmack viel zu Viele Dims, es ist deswegen nicht wirklich übersichtlich (wobei für einen Anfänger-Code schon nicht schlecht ist, es gibt sehr viel schlimmere Sachen.) Wenn du zum Beispiel Types nimmst, kannst du die Variablen als Type-Felder viel verständlicher benennen. Du machst alles in der Hauptschleife und zeichnest alles kontinuierlich. Es wäre übersichtlicher und wenn dein Code größer wird sogar unendlich wichtig, nicht alles in Hauptschleife zu machen, sondern die einzeln Teilaufgaben wie zum Beispiel das Zeichnen von alles, das Berechnen von Kollisionen, das Abfeuern von Rakete, etc außerhalb der Schleife entweder als Funktion oder als Subrutine mit Gosub zu machen. Dann sieht deine Hauptschleife sehr klein aus. Du siehst übersichtlich nur die wenigen Zeilen die den logischen Ablauf deines Porgrammes zeigen. Wie hintereinander das Spieler-Schiff bewegt wird, die Aliens bewegt werden, Schüsse bewegt werden, Kollisionen gechecked werden, am Ende wird alles gezeichenet, nicht immer, es reicht alle 30 millisekunden ein Mal zu zeichnen. Du könntest schon weiterkommen, wenn du deinen Code optimier würdest. Anonsten, du hast gesagt die Explosion kommt unnötig und zu oft. Dann schaue nach, welche Bedingungen in deinem Code erfüllt sein müssen, damit die Explosion kommt. Da steht was von 500 für ein Dim-Feld (";Explosion Alien2 zeichnen"). Schaue nach, wo und warum du diesem Feld den Wert 500 gibst. Eine logische Fehlerquelle ist wegen deines "alles in einer Schleife" Aufbaus ist auch, daß du scheinbar (habe nicht richtig nachgeschaut) nicht geregelt kriegst, daß Alien Schiffe oder Raketen wenn sie schon ein Mal explodiert sind nicht mehr gezeichnet werden, sondern nur die Explosion und das für eine bestimmte Zeit. Ok, noch was. Vielleicht solltest du erst als Test das Programm so weit vereinfache, daß du nciht Dims mit vielen Schiffe und Raketen nimmst, sondern nur ein einziges Alien und eine einzige Rakete nimmst. Das Spiel soll erstmal mit Minimum funktionieren und erweiter es Schritt für Schritt. Erst nur mehr als 1 Rakete nehmen, dann mehr als ein Alien und so weiter. Für einen Anfänger kann diese Vorgehensweise hilfreich sein. Häufig testen und nicht weiter gehen, bis jeder kleine Fehler der auftaucht vollkommen bereinigt ist. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group