Schweif

Previous topic - Next topic

WPShadow

Hi!

Noch eine Frage, die vielleicht auch einige Andere brauchen könnten:

Ich bin mir nicht sicher, wie ich es angehen soll, einen Raketenschweif zu machen. Meine Idee ist (vorerst) einfach ein X_SPRITE hinter die Rakete zu stellen und in 5 Zeitschritten hinterher zu ziehen. Mit jeder Zeitstufe möchte ich es einfach kleiner Skalieren. Die Position der Rakete bekomme ich mit pos_x/pos_y leicht heraus, aber wenn ich die Zeitschritte versuche zu setzen klebt X_SPRITE entweder direkt an dem Ding oder ist gar nicht vorhanden.

Habe das Beispiel leider nicht hier, deshalb kann ich leider kein Codebeispiel dazu geben... =(

Gruß

W.

PS.: Wäre wer so lieb und könnte mir ein kleines Beispiel schreiben oder zumindest einen theoretischen Hinweis geben, wie ich das am Besten angehen könnte? Ich verzweifle langsam...
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Merk' Dir alle 500ms die Position vom Raumschiff, und mach da eine Feuerflamme hin. Lösch' dann flammen, die älter als 2 sek sind. (z.B.)

WPShadow

Genau da liegt ja mein Problem!

Ich habe keine Ahnung, wie ich das mit den 500ms lösen soll... =/

Versucht habe ich mich an dem ganzen mit DIMPUSH und DIMDEL, wobei Schranz0r irgendwann mal vorgeschlagen hat, das Ganze mit Types zu versuchen...
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Schranz0r

Code (glbasic) Select
If timer < GETTIMERALL()
    //mach was lustiges
    timer = GETTIMERALL()+500 // 500 ms  
ENDIF
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Code (glbasic) Select
TYPE Twolke
 x;y;...
 time
ENDTYPE


time = GETTIMERALL()
IF naechste_wolke >= time
    naechste_wolke = time + 500
    LOCAL wk AS Twolke
    wk.time = time
    wk.x ...
    DIMPUSH wolken[], wolke
ENDIF

FOREACH wk IN wolken[]
   IF wk.time

WPShadow

Oh Mann...

Danke! Puh, ganz blicke ich noch nicht durch, aber gib mir mal bis morgen Zeit, dann läuft das schon! Falls es ein Problem gibt melde ich mich heute Abend nochmal!

Nochmal danke! Danke, Danke und Danke! =)
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

WPShadow

Hi!

Ich habe tatsächlich ein Problem! Irgendwie bekomme ich beim 1. PRINT die Meldung:

TYPE is not declared

Wo liegt da der Fehler???

Code (glbasic) Select
TYPE wolke
time
x
y
ENDTYPE

GLOBAL Wolken[] AS Wolke

DIM wolken[1]

WHILE TRUE
LOCAL wk AS wolke

MOUSESTATE mx, my, b1, b2

time = GETTIMERALL()

IF n_wolke >= time
n_wolke = time + 500

wk.time = time
wk.x = mx
wk.y = my

DIMPUSH wolken[], wolke

ENDIF


FOREACH wk IN wolken[]

IF wk.time < wolke - 2000
DELETE wk
ENDIF

PRINT ".", wk.x, wk.y
NEXT

PRINT "o", mx, my

SHOWSCREEN
WEND
Gruß

W.
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Dein Type hat keinen Namen.

Schranz0r

LOL W:


Code (glbasic) Select
TYPE Wolke
    time
    x; y; z
ENDTYPE

GLOBAL Wolken[] AS Wolke

...
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

WPShadow

Hoppla, habe mich beim abtippen verschrieben! In meinem Programm heißt der TYPE Wolke...

Funzt aber nicht
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Code (glbasic) Select
TYPE Twolke
 x;y
 time
ENDTYPE

LOCAL wolken[] AS Twolke

WHILE TRUE
MOUSESTATE mx,my,b1,b2


time = GETTIMERALL()
IF naechste_wolke <= time
    naechste_wolke = time + 100
    LOCAL wk AS Twolke
    wk.time = time
    wk.x = mx
    wk.y = my
    DIMPUSH wolken[], wk
ENDIF




FOREACH wk IN wolken[]
   IF wk.time
So, jetzt nimm dir bitte, bitte Zeit und versuche das Beispiel komplett zu vertehen - und dann schreib's komplett neu - ohne Spicken, nur weil Du es kapiert hast. Wenn's nicht geht, dann schau, was anders ist. Und mach das so oft, bis Du es echt ganz von alleine kannst - erst dann kannst Du wirklich anfangen was sinnvolles zu machen.
Ist nicht bös gemeint, aber so haben wir's alle gelernt. Spicken, und nachmachen.

WPShadow

Angesehen, gewogen und als kapiert befunden! Dürfte hinhauen, also keine doofen Fragen mehr von meine Seite! =)

Danke für die Geduld und die viele Hilfe!!!
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est