variablenaustausch bei kollisionen
Übersicht

RaoudiBetreff: variablenaustausch bei kollisionen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hab da 2 types (dummy und schuss)
Code: [AUSKLAPPEN] ;dummy--------------------------------
For d.dummy = Each dummy TranslateEntity d\mesh,0,-d\grav#,0 d\grav# = d\grav#+d\gravity# If d\health <= 0 FreeEntity d\mesh Delete d End If Next bei jeder kollision mit s\sprite (dem schuss) sollte sowas passieren Code: [AUSKLAPPEN] d\health = d\health-s\dmg
wie mach ichs : /? |
||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weil ich grad nichts besseres zu tun hatte: ![]() Code: [AUSKLAPPEN] Type dummy Field mesh Field health End Type Type schuss Field sprite Field dmg End Type ; Kollisionsarten Const DUMMY_TYP = 1 Const SCHUSS_TYP = 2 ; Neue dummy Instanz d.dummy = New dummy d\mesh = CreateCube() d\health = 100 ; Für das mesh festlegen von welcher Kollisionsart es ist. EntityType d\mesh, DUMMY_TYP ; Neue schuss Instanz s.schuss = New schuss s\sprite = CreateCube() s\dmg = 10 ; Für das schuss sprite festlegen von welcher Kollisionsart es ist. EntityType s\sprite, SCHUSS_TYP ; Kollision zwischen Schuss und Dummy Kollisionsart festlegen ; Alle Entities die diesen beiden Typen zugeordnet wurden, werden also ; während des Spiels überprüft. Collisions SCHUSS_TYP, DUMMY_TYP, 2, 2 ; Alle schüsse durchgehen For s.schuss = Each schuss ; Kollidierendes Objekt col = EntityCollided(s\sprite, DUMMY_TYP) ; Wenn es eine Kollision gibt.. If Not col = Null ; Alle dummies durchgehen.. For d.dummy = Each dummy ; ..und schauen zu welcher Typeinstanz das Kollidierende Objekt gehört. If d\mesh = col ; Dann von dieser den Schaden bei Health abziehen d\health = d\health - s\dmg EndIf Next EndIf Next |
||
Raoudi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] ; Wenn es eine Kollision gibt..
If Not col = Null da sagt er "illegal type conversion" ._. |
||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab das alles von Hand geschrieben.. das ganze liefert ein Handle zurück und kein mesh Objekt oder so ^^
Das heisst du musst auf not = 0 prüfen statt null, sorry ![]() |
||
Raoudi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
funzt irgendwie ned ;_; | ||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also es müsste heissen:
Code: [AUSKLAPPEN] If not col = 0 then
Der Code den ich geschrieben habe ist auch nicht komplett. Das sollten nur die wichtigsten Teile sein, das mit dem Schüsse durchgehen sollte in deine Hauptschleife irgendwo. Das andere müsstest du an deinen Code anpassen, also da wo du neue Schüsse und dummies machst musst du ihnen einen Kollisionstyp zuweisen nach dem Erstellen, mit EntityType entity, typ. |
||
Raoudi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jolinah hat Folgendes geschrieben: Also es müsste heissen:
Code: [AUSKLAPPEN] If not col = 0 then
Der Code den ich geschrieben habe ist auch nicht komplett. Das sollten nur die wichtigsten Teile sein, das mit dem Schüsse durchgehen sollte in deine Hauptschleife irgendwo. Das andere müsstest du an deinen Code anpassen, also da wo du neue Schüsse und dummies machst musst du ihnen einen Kollisionstyp zuweisen nach dem Erstellen, mit EntityType entity, typ. weiss ich, hab auch nur diesen code benutzt Code: [AUSKLAPPEN] ; Alle schüsse durchgehen
For s.schuss = Each schuss ; Kollidierendes Objekt col = EntityCollided(s\sprite, DUMMY_TYP) ; Wenn es eine Kollision gibt.. If Not col = 0 ; Alle dummies durchgehen.. For d.dummy = Each dummy ; ..und schauen zu welcher Typeinstanz das Kollidierende Objekt gehört. If d\mesh = col ; Dann von dieser den Schaden bei Health abziehen d\health = d\health - s\dmg EndIf Next EndIf Next den rest hab ich ja schon. nur wird die variable s\dmg ned von der d\health abgezogen : / |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group