Schuss kollisson

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Roma3ht

Betreff: Schuss kollisson

BeitragSa, Dez 20, 2008 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi ...
Ich habe eine frage, undzwar hab ich ein laser den man abfeuern kann..
Leider fliegt er durch Wände..wie kann ich machen das er nicht durchfliegt ?
Ich meine ich weis schon wie ich eine kollissions abfrage mache aber ich will nicht für jedes einzelne tile auf der map die abfrage machen.. Kann ich das nicht irgendwie mit dem frame meines tilesets verbinden ? also das wenn der laser das frame [...] trifft dann verschwindet er.

Smile

ozzi789

BeitragSa, Dez 20, 2008 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Mach deine Schüsse als Type
Code: [AUSKLAPPEN]
Type shot
   Field x
   Field y
End Type


Du machst ne For Next Schleife, rufst jede Koordinate deiner Tilemap auf, checkst ob sie Kollision hat, wenn jetzt ein Schuss inerhalb der Koordinaten des einzelnen Felds ist löscht du ihn.

Delete s.shot




mfg
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Roma3ht

BeitragSa, Dez 20, 2008 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok danke..ich probier mal. Ich hab zwar mein schuss in dem typ aber wusste nicht wie ich das schneller mit der kolli abfrage machen kann.

E D I T:

Kann ich irgendwie mit einer If Abfrage kuckenwelches frame aktiviert ist und dann was machen ? also so in etwa

If Frame = 2
...
Endif

Ist kein richtiger code aber in etwa so geht das ? wenn ja wie ?

ozzi789

BeitragSa, Dez 20, 2008 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
...kuckenwelches frame aktiviert ist...

Erläuter mir das nochmal blick ned ganz durch
sry
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Roma3ht

BeitragSa, Dez 20, 2008 18:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry..
> Na das die If Abfrage prüft welches Frame grad Aktiviert ist und wenn z.b. das frame 3 aktiviert ist dann macht es iwas. lso so etwa

If Frame = 3 Then
...
Endif

ich hoffe jetz versteht man es besser.

ozzi789

BeitragSa, Dez 20, 2008 18:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ehm naja Oo

Pseudocode :
Code: [AUSKLAPPEN]

For x=1 to 20
For y=1 to 20
    for each Schuss
       if kooridnaten im feld=map(x,y) and frame=3
       delete Schuss
    endif
next
next
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Roma3ht

BeitragSa, Dez 20, 2008 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke^^
 

Roma3ht

BeitragSa, Dez 20, 2008 22:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab ne frage..bei deinem oberen code was meinst du mit Kordinaten im feld ?

ozzi789

BeitragSa, Dez 20, 2008 23:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Benutz bitte den Edit knopf, doppelposts ist von den Admins verhasst Wink


Wobei gx/gy für die aktulle Position mal die Grösse eines Tiles ist.
Code: [AUSKLAPPEN]
if l\laser_x<gx+10 and l\laser_x>gx-10 and l\layser_y<gy+10 and l\layer_y>gy-10



Hoffe ich erzähle keinen Scheiss einfach ausprobieren (chronischer Schlafmangel) Smile

mfg
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Roma3ht

BeitragSa, Dez 20, 2008 23:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok das hab ich soweit..mir kommt aber ein neues simples problem.
Ich habe ne Function erstellt und wenn ich w drücke öffnet sie sich aber wie mach ich das das wenn ich s drücke sie sich schliest ?

ozzi789

BeitragSa, Dez 20, 2008 23:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Mensch ich kann ja nur raten was du meinst Very Happy
Code: [AUSKLAPPEN]

While Not KeyHit(1)

If KeyHit (17) meinefunktion()
Print "Nicht in der Funktion!"


Wend


Function meinefunktion()
Repeat

Print "ich bin in der Funktion >:O   11!!"
If KeyHit (31) Return


Forever
End Function



mfg
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Roma3ht

BeitragSa, Dez 20, 2008 23:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab doch klar geschrieben oder ?
Ich hab die Function schon offen blos weis nicht wie ich sie schliese aber hab grad ne lösung gefunden.

ozzi789

BeitragSa, Dez 20, 2008 23:42
Antworten mit Zitat
Benutzer-Profile anzeigen
das sie sich schliest.. also hab ich richtig angenommen das du die Funktion meinst, kannst mit Return ganz einfach ne Funktion verlassen Wink
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group