Types und Sprites > Explosions Problem
Übersicht

mevosBetreff: Types und Sprites > Explosions Problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
Ich hab ein Problem mit meinem Code (den ich selbst gemacht habe) und komme einfach nicht weiter. Code: [AUSKLAPPEN] For sprites.sprites = Each sprites
MoveEntity sprites\objs,0,0,6000.0 * frametime_sec# RotateSprite sprites\objs, Zufallszahlen If EntityCollided(sprites\objs,TYPE_WORLD) X_sprite#=CollisionX# (sprites\objs, TYPE_WORLD) Y_sprite#=CollisionY# (sprites\objs, TYPE_WORLD) Z_sprite#=CollisionZ# (sprites\objs, TYPE_WORLD) sprites1.sprites1 = New sprites1 sprites1\objs = CopyEntity(explodesprite2) ShowEntity sprites1\objs sprites1\alpha#=1 PositionEntity sprites1\objs,X_sprite#,Y_sprite#,Z_sprite# EndIf For sprites1.sprites1 = Each sprites1 sprites1\scale#=sprites1\scale#+1 ScaleSprite sprites1\objs,10+sprites1\scale#, 10+sprites1\scale# sprites1\alpha#=sprites1\alpha#-0.1 EntityAlpha sprites1\objs,sprites1\alpha# If sprites1\alpha# =< 0 Then FreeEntity sprites1\objs Delete sprites1 EndIf Next Das ganze dient um eine explosion zu erstellen. Nachdem ich ein sprites\objs die Welt berührt, wird an der stelle durch sprites1.sprites1 = New sprites1 ein neues Sprite erstellt, welches dann größer scalliert und alphariert wird. Das Problem: Es wird aus irgendeinem grund nur kurz alphariert und gescallt. Dann bleibt es einfach stehen. Wenn ich dann wieder schiesse, wird der alte sprite weiter gescallt und alphariert. |
||
![]() |
Christoph |
![]() Antworten mit Zitat ![]() |
---|---|---|
Als erstes fehlt da mal ein ql:Next . Sonst kriegt man das Programm gar nicht zum Laufen... | ||
mevos |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da ist doch ein Next ganz unten. Und das game läuft ja auch, biss auf mein Problem, welches ich oben beschrieben habe. | ||
![]() |
Cat |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm, liegt vielleicht daran dass du zweimal den selben Typennamen verwendest also objs, bin mir jetzt aber nicht sicher... | ||
Intel Core 2 Duo E6300 (2 x 1,86 Ghz)
2 x 1024 MB Arbeitsspeicher NVidia GeForce 8800 GT |
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
nee glaube ich nicht cat. | ||
[Y[our Film, Game ]M[akers and more [F]un!
www.Master-Entertainment.de.vu [AMD 6000+ X2 @ 6400+][2GB RAM][NVidia 8800GT 512 MB] |
mevos |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab die Function jetzt folgendermaßen abgeändert:
Code: [AUSKLAPPEN] For sprites.sprites = Each sprites
If EntityCollided(sprites\objs,TYPE_WORLD) X_sprite#=CollisionX# (sprites\objs, TYPE_WORLD) Y_sprite#=CollisionY# (sprites\objs, TYPE_WORLD) Z_sprite#=CollisionZ# (sprites\objs, TYPE_WORLD) sprites2.sprites2 = New sprites2 sprites2\objs2 = CopyEntity(explodesprite2) ShowEntity sprites2\objs2 sprites2\alpha2#=1 sprites2\scale2#=1 PositionEntity sprites2\objs2,X_sprite#,Y_sprite#,Z_sprite# EndIf Next For sprites2.sprites2 = Each sprites2 sprites2\scale2#=sprites2\scale2#+10 ScaleSprite sprites2\objs2,sprites2\scale2#, sprites2\scale2# sprites2\alpha2#=sprites2\alpha2#-0.3 EntityAlpha sprites2\objs2,sprites2\alpha2# If sprites2\alpha2# =< 0 Then FreeEntity sprites2\objs2 Delete sprites2 EndIf Next Ich hab jetzt jedem Type einen neuen Namen verpasst. Jetzt werden sie nicht immer weiter scalliert wenn ich schiesse, sondern nur wenn sie kollidieren. Also einmalig. Wie es auch sein soll. Nur verstehe ich nicht, warum sie nur kurz scalliert werden und die scallierung dann plötzlich stehen bleibt. Eigendlich sollten sie so lange weiter scalliert werden, biss sie gelöscht werden. (Ausschnitt von oben) Code: [AUSKLAPPEN] sprites2\scale2#=sprites2\scale2#+10
ScaleSprite sprites2\objs2,sprites2\scale2#, sprites2\scale2# sprites2\alpha2#=sprites2\alpha2#-0.3 EntityAlpha sprites2\objs2,sprites2\alpha2# |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Versuch mal ScaleSprite falls es sprites sind, die Entity Befehle haben auf Sprites nur eingeschränkte Wirkung. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
mevos |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wie kommst du auf ScaleEntity???
Ich verwende doch ScaleSprite. Siehe Code! |
||
mevsmp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sorry für den doppelpost, aber weiß wirklich niemand wo der fehler liegt/liegen könnte?
komme so einfach nicht mit meinem projekt vorran. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du kannst sie nur bis zu einem bestimmten Punkt skalieren
Am besten nimmst du aber mal den ganzen skalierungs code etc und packst ihn ein kleines testprogramm und schaust da oder lässt dir daten ausgeben so das du weisst wie weit die skalierung möglich ist. Wir sind leider nicht gott, können also aufgrund von obigem code nicht sagen was sonst noch reinpfuscht |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group