Warum ruckelt das?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Da_Real_Living_Dead

Betreff: Warum ruckelt das?

BeitragMi, Jan 24, 2007 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi @ all,
ich hab mal wieder was mit BlitzBasic gecodet, und da ist mir aufgefallen, das bei mir selbst ein Programm mit extrem geringer Komplexität ruckelt. Mein Code sieht folgendermaßen aus:
Code: [AUSKLAPPEN]

Graphics 1280,1024
SetBuffer BackBuffer()

x=25
y=25
sprung=0
ClsColor 255,255,255
objekt=LoadImage("Objekt.bmp")
hintergrund=LoadImage("Hintergrund.bmp")
MaskImage objekt,255,255,255
MaskImage hintergrund,255,255,255

Repeat
   If KeyDown(203) Then x=x-8
   If KeyDown(205) Then x=x+8
   
   If Not ImagesCollide(objekt,x,y,0,hintergrund,0,0,0) y=y+5
   Cls
   DrawImage hintergrund,0,0
   DrawImage objekt,x,y
   Flip
   Delay 25
Until(KeyHit(1))

End


Kann mir nun jemand sagen was ich falsch mache ? Oder muss man bei BlitzBasic für sowas schon einen richtigen Zocker Pc haben ?
muahahahahahaha
 

ETsoftware

BeitragMi, Jan 24, 2007 14:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Hatte jetzt keine Zeit zum Testen, aber du musst das Delay sicher weglassen.
ETsoftware 2007
 

ETsoftware

BeitragMi, Jan 24, 2007 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab jetzt doch Zeit gefunden Smile

Lag doch nicht daran. Bei mir lief alles auch mit Delay flüssig und ruckelte nicht. Das es am Computer liegt, kann ich mir eigentlich auch schwer vorstellen.

Für Blitz2D-Programme brauchst du keinen Zocker PC!
ETsoftware 2007

Dottakopf

BeitragMi, Jan 24, 2007 16:02
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm...
kann mir auch ned vorstellen woran das liegt (dachte auch erst des muss des delay sein). Schau doch mal wenn du das Progi startest wie deine CPU auslastung ist. (du musst den Taskmanager mit Strg+Alt + Enft öffnen und dann unter Systemleistung gucken). Da steht links oben dan "CPU-Auslastung" Die ist bei mir (auch bei komplexen programmen so im bereich von 30 - 50).

Wenn du aber schon vorher also bevor du das Progi startest so ne 30iger auslastung hast, dann stimmt an deinem Rechner was ned.

K.a. Hoffe konnte so irgendwie helfen

mfg Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!
 

FWeinb

ehemals "ich"

BeitragMi, Jan 24, 2007 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Mach mal nen timer Rein ist bei meinem nuen PC war das auch so also du must das so machen

Code: [AUSKLAPPEN]

timer=Creattimer(24)

While not keyhit(1)
Waittimer timer


;...Der rest des Codes


Wend
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Jan 24, 2007 16:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine Bildschirmauflösung von 1280x1024 ist für 2D schon recht viel. Wenn dann auch noch Bildschirmfüllende Inhalte kommen, braucht man ein recht modernen Rechner, der das dann noch flüssig darstellen kann. Würde ich mal sagen. Falls du es denoch ausprobieren möchtes, mache mal Graphics x,y,0,1 dann kannst du sehen, ob es nicht vielleicht an Windows liegt, da dein Beispiel bei mir zunächst in Fenster lief und es da auch ruckelte, trotz entfernen des Delays.
 

Da_Real_Living_Dead

BeitragMi, Jan 24, 2007 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
mmh, also da kann ich machen was ich will, aber bei mir fängt wird das objekt immer sehr unscharf wenn es sich bewegt, und außerdem alle paar sekunden stockt es kurz.

PSY

BeitragFr, Jan 26, 2007 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
mach das delay VOR das flip ^^

Smily

BeitragFr, Jan 26, 2007 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
nein der soll das delay lieber ganz rausmachen. Hat eh keinen wirklichen sinn ^^
Man sollte lieber mit timern arbeiten (und waittimer dann vor flip Wink ). Gruß, Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
 

Omenaton_2

BeitragFr, Jan 26, 2007 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Einen ausschlaggebenden Grund konnte ich auch nicht finden, aber :

- Das recht große Hintergrundbild wird auch noch maskiert, ich denke maskierte Bilder sind langsamer in der Darstellung. Deshalb wird empfohlen wenn es geht die Bilder mit DrawBlock stat mit DrawImage darzustellen (geht aber nur bei nicht maskierten Bildern.)

- Ich schätze, daß das ständige anwenden von Kollisionscheck auch sehr an Performance zieht.

- Delay ist nicht gut. Die Idee, das Bild nicht pausenlos zu zeichnen halte ich aber für richtig, mache ich auch so. Dafür verwende aber einen Timer, nicht Delay.
So alle 40-60 Millisecs das Bild aufzubauen dürfte reichen. Es wäre auch hilfreich, die Kollision nicht pausenlos zu checken, sondern nur alle X Millisekunden ein Mal oder wenn eine Bewegung eines Objektes tatsächlich statfindet auf die Koll.Check Rutine zu springen.

- Lass das Programm in Vollbildmodus laufen. Das sieht besser und ausgegelichener aus. Probiere es unbedingt aus !
Graphics 1280, 1024, 16, 1

Es kann auch sein, daß deine Grafikkarte speziell mit der obigen Auflösung schlecht klarkommt.
Probiere auch das aus:
Graphics 1024, 768, 16, 1
 

Da_Real_Living_Dead

BeitragFr, Jan 26, 2007 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
mmh, ändert allerdings nichts am ruckeln. Jedenfalls bei mir. Vielleicht liegts wirklich an meinem Pc. Sad

Lunatix

BeitragFr, Jan 26, 2007 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Delay ist dort ganz und gar unnangebracht. prg_tm = CreateTimer(60) & in der Schleife Waittimer prg_tm

2. Würde ich gerne mal deine beiden Bilder sehen. (Aber als PNG oder JPEG bitte, bmp's sind altmodisch und zu groß!)

3. Wenn dein Bild wie ich vermute wirdklich 1280*1024 gross sit, wunderts mich nicht so, das das ruckelt wegen dem ImagesCollide... warum sollte ein bild mim Hintergrund collidieren? da wär Rectsoverlap oder Imagerectoverlap vlt. besser angebracht...

4.Wie wäre es damit wenn du uns mal sagst, was dein PC für Hardware hat?
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

Da_Real_Living_Dead

BeitragFr, Jan 26, 2007 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
512 mb ram, 3.1 ghz, graka ist onboard und totaler müll.
Ich hatte mir das eigentlich so gedacht das es mehrere Hintergrundbilder gibt, und dieses eine was hier erst integriert ist, ist nur zum kollidieren da, also dort sind bloß die Balken drauf wo man dann nacher raufspring kann und so, von daher ist dieses auch 1280 x 1024 groß. Um genau zu sein habe ich bereits ein Spiel mit dieser methode vor 1 bis 2 jahren geschrieben, hatte aber noch 800x600 und ich nen andern Pc. Und das spiel selber ist irgendwann beim formatieren mal draufgegangen, von daher versuche ich im moment nur, wieder in die Basic Dialekte einzusteigen, und zwecks dessen ein "remake" zu programmieren^^

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group