Schuss Problem.
Übersicht

ArdalicBetreff: Schuss Problem. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ich möchte gerne das die schüsse nach 30 sec. verschwinden. Code: Code: [AUSKLAPPEN] Function UFOBullets()
For t.trail=Each trail EntityAlpha t\entity,t\alpha t\alpha=t\alpha-0.01 If t\alpha<=0 FreeEntity t\entity Delete t EndIf Next For ub.ufo_bullet=Each ufo_bullet b.bullet_trail=New bullet_trail : b\entity=CopyEntity(ub\entity) : EntityType b\entity,0 : b\alpha=1 MoveEntity ub\entity,0,0,-20 If EntityDistance(ub\entity,plane1)>5000 Or EntityY(ub\entity)<=-10 Then FreeEntity ub\entity : Delete ub Next For b.bullet_trail=Each bullet_trail b\alpha=b\alpha-0.1 EntityAlpha b\entity,b\alpha If b\alpha<=0 Then FreeEntity b\entity : Delete b Next End Function |
||
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dann bau in den jeweiligen type nen platz ein wo die entstehungszeit gespeichert wird und wenn die aktuelle zeit größer als 30 sec is lösche den schuss
millisec() is da behilflich ![]() |
||
Ardalic |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich schaffe es nicht | ||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Erweitere deinen Bullet-Type um folgende Zeile:
Code: [AUSKLAPPEN] Field birthtime
Wenn du eine neue Instanz von Bullet erzeugst, übergibst du diesem die aktuelle Zeit: Code: [AUSKLAPPEN] b.Bulltet = new Bullet
b\birthtime = millisecs() und immer wenn du alle bullets durchgehst, prüfst du ob 30 Sekunden seit erstellen vergangen sind: Code: [AUSKLAPPEN] for b.Bullet = each Bullet
if millisecs() - b\birthtime > 30000 delete b next |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Ardalic |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jetzt verstehe ich nur noch Bannhof | ||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab das ganze jetzt mal mit 1 Sek bis gelöscht werden geproggt:
Code: [AUSKLAPPEN] Graphics 800,600,32,2
SetBuffer BackBuffer() Repeat TBullet_logic() If KeyHit(57) TBullet_create(0,300,5,0) Cls TBullet_render() Flip Until KeyHit(1) End Type TBullet Field birthtime% Field pos#[2] Field speed#[2] End Type Function TBullet_create.TBullet(x#,y#,speedx#=0,speedy#=0) b.TBullet = New TBullet b\birthtime = MilliSecs() b\pos[0] = x b\pos[1] = y b\speed[0] = speedx b\speed[1] = speedy Return b End Function Function TBullet_logic() Local time% = MilliSecs() For b.TBullet = Each TBullet b\pos[0] = b\pos[0] + b\speed[0] b\pos[1] = b\pos[1] + b\speed[1] If time - b\birthtime > 1000 Delete b EndIf Next End Function Function TBullet_render() For b.TBullet = Each TBullet Oval b\pos[0]-2,b\pos[1]-2,4,4 Next End Function |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
Jo0oker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn ich mich nicht irre kannst du das auch gut mit EntityDistance lösen.
lg Jo0oker |
||
Tehadon, das kostenlose 3D RPG
www.tehadon.de http://www.blitzforum.de/worklogs/14/ Das Abenteuer wird beginnen! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group