Speed-Verlust
Übersicht

ZhangHe2Betreff: Speed-Verlust |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es geht um eine Explosion mit Hilfe von Sprites , obwohl ich dir sprites mit hilfe von hidyentity versteck bzw lösche wird es immer langsamer irgednwie hindert es mich daran weiterzumachen ![]() Ich weiß das die meisten kein bock haben nen code durch zu gucken aber falls wer lust hat. Habs so gemacht das man es so starten kann , also die Explosion besteht nur aus "CreateSprite".,guckt ruhig rein und sagt mir mal ob die explo gut aussieht. Code: [AUSKLAPPEN] graphics3d 1600,1200,16,2 SETBUFFER BACKBUFFER() type granate field sphere field exist end type Global fps_anzeige Global fps_ms=MilliSecs() Global fps_frames ;plane_tex=loadtexture("grass.bmp") framer=CREATETIMER(80) ;plane1 global plane=createplane() ;entitytexture plane,plane_tex ;scaletexture plane_tex,80,80 entitycolor plane,125,0,0 ;end plane1 ;plane2 plane2=createplane() turnentity plane2,180,0,0 positionentity plane2,0,100,0 entitycolor plane2,0,0,125 ;end plane2 ;camera global camera=createcamera() camerarange camera,1,10000 camerafogmode camera,1 camerafogrange camera,1,1000 entityradius camera,10,1 positionentity camera,0,10,0 ;end camera entitytype camera,1 entitytype plane,2 ;ambientlight 255,255,255 repeat collisions 1,2,2,2 WAITTIMER (framer) Fps() seedrnd millisecs() if keyhit(57) then partikel1(0,0,0,1,1,1,360,360,360,1,0,1,1) partikel1update(.2,0.03) ;bewegung if keydown(17) then moveentity camera,0,0,2 if keydown(31) then moveentity camera,0,0,-2 msx#=mousexspeed() msy#=mouseyspeed() turnentity camera,0,-msx/10,0 ,1 turnentity camera,msy/10,0,0,0 movemouse 800,600 hidepointer ;end bewegung ;granate if mousedown(1) bombe.granate=new granate bombe.granate\sphere=createsphere(12,camera) positionentity bombe.granate\sphere,1.5,0,0 entityparent bombe.granate\sphere,0 entitytype bombe\sphere,1 entityradius bombe\sphere,2 bombe\exist=1 endif for bombe=each granate if bombe\exist=1 moveentity bombe\sphere,0,0,10 if entitycollided(bombe\sphere,2) partikel1(0,0,0,1,1,1,360,360,360,1,bombe\sphere,1,50) bombe\exist=0 hideentity bombe\sphere freeentity bombe\sphere endif endif next ;end granate updateworld:renderworld b=renderworld Text 0,0,"FPS: "+fps_anzeige Text 0,10,"Linke Maustaste um zu schießen" Text 0,20,"F1-WireFrame Toggle" if keyhit(59) then wf=1-wf flip 0 wireframe wf until keyhit(1) FREETIMER framer clearworld end ;functionen Function Fps() fps_frames=fps_frames+1 If MilliSecs()-fps_ms >= 1000 Then fps_anzeige=fps_frames fps_frames=0 fps_ms=MilliSecs() EndIf End Function type partikel field exist field spark% field spark2% field speed# field fade# field typ% end type global explosion.partikel,anzahl,typ function partikel1(p1x,p1y,p1z,p1minx,p1miny,p1minz,p1maxx,p1maxy,p1maxz,typ%,parent$=0,fadewert#=1,anzahl=100) for i=1 to anzahl explosion.partikel=new partikel if typ=1 or typ=3 then explosion.partikel\spark=createsprite(parent$);loadsprite("rauch.bmp",1,parent$) if typ=2 or typ=4 then explosion.partikel\spark=createsprite(parent$);loadsprite("partikel.bmp",1,parent$) explosion.partikel\exist=1 explosion.partikel\typ=typ explosion.partikel\fade=fadewert explosion.partikel\speed=rnd(1,2) scalesprite explosion.partikel\spark,10,10 turnentity explosion.partikel\spark,rnd(p1minx,p1maxx),rnd(p1miny,p1maxy),rnd(p1minz,p1maxz) positionentity explosion.partikel\spark,p1x,p1y,p1z entitycolor explosion.partikel\spark,RAND(255),rand(100),rand(100) entityparent explosion.partikel\spark,0 entityalpha explosion.partikel\spark,fadewert# next end function function partikel1update(gravitation,autofadespeed#=0) for explosion=each partikel translateentity explosion.partikel\spark,0,-gravitation,0 moveentity explosion.partikel\spark,0,0,explosion.partikel\speed# explosion.partikel\fade=explosion.partikel\fade-autofadespeed entityalpha explosion.partikel\spark,explosion.partikel\fade if explosion.partikel\fade=0 hideentity explosion.partikel\spark freeentity explosion.partikel\spark delete each partikel for i=1 to anzahl hideentity explosion.partikel\spark freeentity explosion.partikel\spark delete each partikel next endif next end function |
||
gamble |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielleicht mal die utopische Auflösung heruntersetzen? ![]() |
||
ZhangHe2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja,aber hiilft nicht wirklich ^^ | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich vermises da clearcollisions ( oder wie das ging ) aber kann sein dass ich das übersehe
und nur 1x renderworld statt 2x renderworld aufrufen würde sicher auch helfen und dann wär da noch ... partikel1 hat load drin und load MUSS vor der mainloop sein nicht in der mainloop sonst überfüllst du den arbeitsspeicher bis dein system abkratzt |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
OJay |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
2mal renderworld? und was soll das: "b=renderworld" ???
dann: du brauchst nicht hideentity aufzurufen, wenn du das entity eh sofort danach löschst... du solltest sprites per copyentity() von einem mastersprite erstellen. das ist schneller, als sie jedesmal neu zu erstellen weiterhin solltest du dringend an deinem codestil arbeiten! mal eingerückt, mal nicht, deklarationen UNTERHALB des mainloops (wtf?!), NULL kommentare etc etc... bei mir läuft das allerdings, trotz extremer fehler, ziemlich flüssig... |
||
ZhangHe2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jo,an meinem Codestil werde ich noch arbeiten , das mit dem Renderworld war ein fehler von mir den ich wohl übersehen habe.Dieser Code besteht eigentlich aus 2 bb files darum die Deklarationen unterhlalb Loops.Ok,Kommentare sind ein bisschen rar ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group