Cpu auslastung

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

FosJonas

Betreff: Cpu auslastung

BeitragMi, Mai 20, 2009 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe schon wieder ein problem: sobald ich die Frames auf 60 mache steigt meine cpu auslastung auf 100% obwohl das spiel kaum was berechnet. bei 50 frames is sie nur noch 80% bei 40 frames 50%.
ich finde das sehr komisch. ich habbe immerhin nen 2,66 ghz prozessor.
Die größte schleifen berechnung im spiel ist For x= 1 to 8. das verursacht denke ich kaum lags. und der code hat mal grade 114 zeilen.
Gibt es irgendwelche spezielen funktionen die soviel auslastung fordern?

Das programm ist in BlitzPlus Demo gemacht und arbeitet im 1280x768 fenster modus.
 

BadDeath

BeitragMi, Mai 20, 2009 18:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hilft dir sicher weiter: https://www.blitzforum.de/foru...hp?t=25242
-~= real coders just code in binary =~-
 

KaDuZa

BeitragMi, Mai 20, 2009 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
hast du auch nen timer richtig(!) gesetzt?

Code: [AUSKLAPPEN]

CPU=createtimer(60) ; optional
(code)

Reapat
(code)
waittimer CPU
Flip 0
until ;bla
 

aletes

BeitragMi, Mai 20, 2009 19:24
Antworten mit Zitat
Benutzer-Profile anzeigen
heißt es nicht Repeat?
Wink

Starwar

BeitragMi, Mai 20, 2009 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

@aletes: Dein Post ist unnötig.
(Sry dür den Tippfehler...Mach bitte auch mein S weg Razz)

@Jonas: Wenn du den Fehler nicht findest, kannst du deinen Code ja mal posten. Wenn er zu lang ist, schreib ihn ins Pasting (https://www.blitzforum.de/upload/newcode.php).

MFG
  • Zuletzt bearbeitet von Starwar am Mi, Mai 20, 2009 19:57, insgesamt einmal bearbeitet
 

aletes

BeitragMi, Mai 20, 2009 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
@StarWars
ich heiß aletes Wink
ich wollt halt nur was richtig stellen
immerhin würde es mit Reapat nicht klappen Wink
 

KaDuZa

BeitragMi, Mai 20, 2009 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
1. war es ja nur n beispiel
2. Bin ich müde da darf das passieren
3. Es sollte nur den aubau des timer beschreiben..

FosJonas

BeitragDo, Mai 21, 2009 11:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Thema zu 100% auslastung habe ich mir durchgelesen ... also ich habe bei mir keinen fehler endeckt.
hier ist mal der code.
Code: [AUSKLAPPEN]

Graphics 1280 , 768 , 32 , 2
SeedRnd MilliSecs()

Global Frame= CreateTimer(60)
Global Eater_G= LoadImage("Grafiken\Base\Monster_1.bmp")
Global Runner_G= LoadImage("Grafiken\Base\Runner_G.bmp")
Global Runner_T= LoadImage("Grafiken\Base\Runner_T.bmp")
Global Runner_R= LoadImage("Grafiken\Base\Runner_R.bmp")
Global Runner_P= LoadImage("Grafiken\Base\Runner_P.bmp")

MaskImage Eater_G,255,255,255
MaskImage Runner_G,255,255,255
MaskImage Runner_T,255,255,255
MaskImage Runner_R,255,255,255
MaskImage Runner_P,255,255,255


MidHandle Eater_G
MidHandle Runner_G
MidHandle Runner_T
MidHandle Runner_R
MidHandle Runner_P

Dim PosX(100)
Dim PosY(100)
Dim Speed(100)
Dim Typ(100)
PosY(1)=250
PosY(2)=300
PosY(3)=350
PosY(4)=200
PosX(5)=9000
PosY(5)=384
Speed(5)=2
typ(5)=2
For x= 1 To 4
PosX(x)= 640
Speed(x)=2
Typ(x)= 1
Next

Repeat

WaitTimer (Frame)

If KeyDown(208) Then                             ; Bewegen von Spieler 1 (Grün)
PosY(1)=PosY(1)+Speed(1)
Else
If KeyDown(200) Then PosY(1)=PosY(1)-Speed(1)
EndIf
If KeyDown(203) Then
PosX(1)=PosX(1)-Speed(1)
Else
If KeyDown(205) Then PosX(1)=PosX(1)+Speed(1)
EndIf
                                           
If KeyDown(31) Then                                      ; Bewegen von Spieler 2 (Blau)
PosY(2)=PosY(2)+Speed(2)
Else
If KeyDown(17) Then PosY(2)=PosY(2)-Speed(2)
EndIf
If KeyDown(30) Then
PosX(2)=PosX(2)-Speed(2)
Else
If KeyDown(32) Then PosX(2)=PosX(2)+Speed(2)
EndIf

If KeyDown(37) Then                                      ; Bewegen von Spieler 3 (Rot)
PosY(3)=PosY(3)+Speed(3)
Else
If KeyDown(23) Then PosY(3)=PosY(3)-Speed(3)
EndIf
If KeyDown(36) Then
PosX(3)=PosX(3)-Speed(3)
Else
If KeyDown(38) Then PosX(3)=PosX(3)+Speed(3)
EndIf

If KeyDown(76) Then                                      ; Bewegen von Spieler 4 (Pink)
PosY(4)=PosY(4)+Speed(4)
Else
If KeyDown(72) Then PosY(4)=PosY(4)-Speed(4)
EndIf
If KeyDown(75) Then
PosX(4)=PosX(4)-Speed(4)
Else
If KeyDown(77) Then PosX(4)=PosX(4)+Speed(4)
EndIf



For x= 1 To 4                                     ; Spieler Im Rand
If PosY(x)+BY>768 Then PosY(x)=0
If PosY(x)+BY<0 Then PosY(x)=768
If PosX(x)+BX>1280 Then PosX(x)=PosX(x)-5
If PosX(x)+BX<48  Then PosX(x)=PosX(x)+5
If ImagesCollide(Runner_G, PosX(x) , PosY(x) , 0 , Eater_G, PosX(5) , PosY(5) , 0 ) Then typ(x)=0
Next


For x= 1 To 5
PosX(x)=PosX(x)-1
Next
PosX(5)=PosX(5)-Speed(5)

If typ(5)=2 Then DrawImage(Eater_G , PosX(5)+BX , PosY(5)+BY)
If typ(1)=1 Then DrawImage(Runner_G , PosX(1)+BX , PosY(1)+BY)
If typ(2)=1 Then DrawImage(Runner_T , PosX(2)+BX , PosY(2)+BY)
If typ(3)=1 Then DrawImage(Runner_R , PosX(3)+BX , PosY(3)+BY)
If typ(4)=1 Then DrawImage(Runner_P , PosX(4)+BX , PosY(4)+BY)

Flip
Cls
Until KeyDown(1) Or quit=1

Nicdel

BeitragDo, Mai 21, 2009 11:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst Flip 0 schreiben.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

FosJonas

BeitragDo, Mai 21, 2009 12:08
Antworten mit Zitat
Benutzer-Profile anzeigen
lol danke, cpu auslastung 4-30%^^ wieviel so ein kleiner fehler ausmachen kann.
 

KaDuZa

BeitragDo, Mai 28, 2009 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
das hatte ich dir aber bereits gepostet ...
naja egal hauptsache problem gelöst Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group