Drei Fragen
Übersicht

kruxBetreff: Drei Fragen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
1. Wie gann ich viele gleiche objekte, mit kleinen unterschiedlichen eigenschaften, wie z.b. die Geschwindigkeit und Bewegungsrichtung bei Schrotkugeln, erschaffen und zu einem belibigen zeitpunkt wieder Löschen, das heißt welche Befehle brauche ich?
2. Wie kann ich bei einer Kollision von zwei objekten die eigenschaften des einen Objektes abhängig von den eigenschaften des anderen Objekts Verändern, wie z.B. die Lebensenergie abhängig von der Geschwindigkeit der einschlagenden Kugel? Und jetzt das Wichtigste 3. Wie muss ich das schreiben wenn ich nicht jede möglichkeit von kollidierenden Objekten einzeln Aufschreiben möchte? |
||
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schau dir mal TheShadow's Type Tutorials an:
http://www.blitzbase.de/tutorials/shadow_1.htm |
||
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
beziehen sich die Fragen auf 2D oder 3D? |
||
krux |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
2D und wenn du es genau wissen willst den code für mein Aktuelles Projekt hab ich unter Projekte / Vektor Tanks gepostet und ich find das is dafür dass ich erst seit einer Woche BlitzBasic habe recht gut | ||
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. Dazu brauchst du Types....:
http://www.blitzbase.de/tutorials/shadow_1.htm Das musst du zuerst mal durchlesen und checken.... Es könnte dann etwa so aussehen: Code: [AUSKLAPPEN] Type schuss Field tempo Field richtung field grösse ... end Type if keyDown(schusstaste) then for x = 1 to 100 s.schuss = new schuss s\tempo = Rand(10,20) .... next end if for s.schuss = each schuss if kollision then delete schuss next 2. Also, dann prüfst du den Spieler mit der Kugel auf Kollision. Wenn es eine Kollision gibt, dann Rechnest du z.B die geschwindigkeit von der Lebensenergie weg: Code: [AUSKLAPPEN] for s.schuss = each schuss if kollision then Lebensenergie = Lebensenergie - s\tempo next 3. Ich chekce nicht genau was du meinst.... cu simi |
||
![]() |
Ebola33 |
![]() Antworten mit Zitat ![]() |
---|---|---|
zu deiner 3. Frage :
Du musst nunmal jede erdenkliche Kombination abfragen. Dies geschieht in der Regel mit 2 ineinander verschachtelten Schleifen. Also etwa so : Code: [AUSKLAPPEN] for gegner=0 to gegneranzahl for schuss=0 to schussanzahl ;kollisionsabfrage next next Mfg Ebola |
||
ansteckend... ![]() verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/ |
krux |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich versuche erst mal mit nem Geschütz ohne limit ballern zu können und die Schüsse in Types zu Speichern, aber irgendwie geht da überhaupt nix
BlitzBasic: [AUSKLAPPEN]
Dieser code is nur dafür da, dass ich was ausprobieren kann, später bau ich das dann ins Hauptprogram ein, aber wo is der Fehler, irgendwie Schießt der garnicht, und die kugeln tauchen nur einmal kurz oben links in der Ecke auf und sind dann auch schon wieder weg. Ich will einfach nur da hin ballern, wo ich hin klicke. Edit: ich hab den code nen bissel verändert und jetzt zeigt der mir immer wenn ich das programm starte und Maus1 drücke "Memory access violation" an |
||
- Zuletzt bearbeitet von krux am Mo, März 14, 2005 18:01, insgesamt 2-mal bearbeitet
![]() |
MBC |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
Ich glaub, ichhab den Fehler gefunden: Du hattest paarmal bei bam\lifetime das bam\ vergessen, und deshalb wurden die schüsse immer direkt wieder gelösht. Also muss die Stelle so heißen: BlitzBasic: [AUSKLAPPEN]
warum man zu der richtung 90 addieren muss, weiß ich ehrlich gesagt nicht, kenn mich da noch nich so aus, aber so funktionierts. ![]() Also dann MfG MBC |
||
Computer sind auch nur Menschen! ![]() |
krux |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das war nicht der fehler kannst du noch mal bitte nachschauen das klappt irgendwie nicht | ||
![]() |
MBC |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hä?
Spiin ich jetzt? Sah der code gestern nicht noch anders aus? ![]() Aber, na ja, hier hab ich mal den code zusammengebastelt, mit dems bei mir gestern ging: BlitzBasic: [AUSKLAPPEN]
Bittschön, so sollte es jetzt gehen, denke ich Aber der Code war gestern doch anders... *confused* MfG MBC |
||
Computer sind auch nur Menschen! ![]() |
krux |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
MBC hat Folgendes geschrieben: Hä?
Spiin ich jetzt? Sah der code gestern nicht noch anders aus? ![]() Aber, na ja, hier hab ich mal den code zusammengebastelt, mit dems bei mir gestern ging: MfG MBC danke aber das ich den code verändert hab hab ich auch unten dran geschrieben |
||
![]() |
MBC |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
Ja, stimmt, jetzt seh ichs auch. Naja, bin ich wohl doch noch nich ganz übergeschnappt. ![]() Aber is ja gut, wenns jetzt geht.. MfG MBC |
||
Computer sind auch nur Menschen! ![]() |
krux |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jetzt weiß ich aber immer noch nicht was mein fehler war könntest du mir sagen was da falsch wa ich find nix was ich anders gemacht habe | ||
![]() |
MBC |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
So wie ich das sehe, war dein einziger "Fehler" eine kleine Unachtsamkeit in Bezug auf Types, und zwar: BlitzBasic: [AUSKLAPPEN]
Bei dieser Zeile hattest du schlicht und einfach das "\bam" vor Lifetime vergessen. Somit war die Bedingung (Lifetime=0, weil du halt der Var "Lifetime" keinen Wert zugewiesen hast, sondern nur "bam\lifetime") immer True, sodass der Schuss schon wieder gelöscht wurde, bevor sich da irgendwas tun konnte. Ich hoffe, das war jetzt einigermaßen verständlich, wenn noch Zeug unklar ist, einfach fragen. Edit: IS BLÖDSINN! Lifetime war nie KLEINER null. Also, momentan blick ich jetzt auch nich mehr durch, ich gucks mir nochmal an, weiteres folgt Edit II: Rah, was schreib ich nur... also, langsam: Das da oben gilt auf jeden Fall für deinen geänderten Code, denn da setzt du als Bedingung 0=0 (Lifetime=0), und dann wird alles gelöscht. Aber ich weiß nicht, ob das beim vorherigen Code auch so war, denk aber dann schon... Und nochn Tip: Schalt den Debugger ein (Program->Debug Enabled?), dann kommen genauere Fehlermeldungen, in dem Fall "Object does not exist". In der Hoffnung, dass das jetzt das letzt EDIT war, MfG MBC |
||
Computer sind auch nur Menschen! ![]() |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group