Game wird immer langsamer

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Five

Betreff: Game wird immer langsamer

BeitragMi, Jan 03, 2007 3:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
ich habe vor 3 Tagen mit Blitz Basic angefangen. Nun bin ich auch soweit gekommen das ich einen Teil meines ersten Spieles fertig habe... doch ich hab das problem das das spiel mit der Zeit langsamer wird..

ich hab mir Blitz 3D Demo runtergeladen (Und ich kauf mir auf jeden fall die Vollversion hab nie gedacht das es so geil ist.. )

Hier mein code (wahrscheinlich noch sehr unübersichtlich ^^)

Zitat:


Graphics 640, 480, 16, 2
;--------------------------------------------------------------------
;--------------------------------------------------------------------

Main (240,440,200,0,300,440,200,440,5)

;--------------------------------------------------------------------
;--------------------------------------------------------------------

Function Main (sx,sy,bx,by,srx,sry,slx,sly,speed)

SetBuffer BackBuffer()

Repeat
Cls

SchlaegerMain = LoadImage("main.bmp")
DrawImage SchlaegerMain, sx, sy

SchlaegerRechts = LoadImage ("rechts.bmp")
DrawImage SchlaegerRechts, srx, sry

SchlaegerLinks = LoadImage ("links.bmp")
DrawImage SchlaegerLinks, slx, sly


Ball = LoadImage ("ball.bmp")
DrawImage Ball, bx, by

;-------------------------------------Steuerung

If KeyDown (203)
sx= sx -10
srx= srx -10
slx= slx -10
ElseIf KeyDown (205)
sx= sx +10
srx = srx +10
slx = slx +10
EndIf

;------------------------------------Schläger trifft Wand

If sx <= 40
sx=40
Else If sx >= 540
sx = 540
EndIf

If srx <= 100
srx=100
Else If srx >= 600
srx = 600
EndIf

If slx <= 0
slx=0
Else If slx >= 500
slx = 500
EndIf

;-------------------------------------Ball fällt

If Trigger = 0
by = by + speed
ElseIf Trigger = 1
by = by - speed
EndIf

;-------------------------------------Ball trifft decke

If by <= 0
Trigger = 0
EndIf

;-------------------------------------Ball trifft Schläger

If ImagesCollide(Ball, bx, by, 0, SchlaegerMain, sx, sy, 0) Then Trigger = 1
If ImagesCollide(Ball, bx, by, 0, SchlaegerRechts, srx, sry, 0) Then Trigger = 1
If ImagesCollide(Ball, bx, by, 0, SchlaegerLinks, slx, sly, 0) Then Trigger = 1

If ImagesCollide(Ball, bx, by, 0, SchlaegerRechts, srx, sry, 0) Then If fly =0
fly = 1
ElseIf fly = 1
fly = 1
ElseIf fly = -1
fly = 0
EndIf
If ImagesCollide(Ball, bx, by, 0, SchlaegerLinks, slx, sly, 0) Then If fly =0
fly = -1
ElseIf fly = -1
fly = -1
ElseIf fly = +1
fly =0
EndIf

If fly = 1
bx = bx +2
ElseIf fly = -1
bx = bx -2
EndIf
;------------------------------------------------------------Ball trifft Wand
If bx = 0
fly = + 1
ElseIf bx = 620
Fly = -1
EndIf


Flip

Until KeyHit(1)

End Function

End


Hier sind die bmp´s --> Jetzt sind es halt jpg´s ^^

user posted image

user posted image

user posted image

user posted image


Sorry wenn das ne blöde frage ist, aber ich hab halt erst vor kurzem angefangen.... thx..

Hagbard

BeitragMi, Jan 03, 2007 4:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, ich hab nur eines schon gesehen:

Du musst die Bilder nur einmal vor der Schleife laden.
  • Zuletzt bearbeitet von Hagbard am So, Apr 18, 2010 13:16, insgesamt einmal bearbeitet

DerHase

BeitragMi, Jan 03, 2007 4:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich nehme an, dass es daran liegt, dass Du die Grafiken nicht nur einmal lädst sondern in jedem Schleifendurchgang. Du brauchst eine Grafik nur einmal zu laden und sie wird im Speicher bleiben, bis Du sie mit FreeImage wieder löscht.
Play Satyr!
 

Five

Betreff: DANKE!!!

BeitragMi, Jan 03, 2007 4:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab´s jetzt verändert und es klappt ^^ ich danke euch !!

ich hab das schonmal versucht nur ich habe dann gleich alles vor die schleife geschrieben.. also auch das DrawImage ... dann kam halt garnix.. Very Happy

mir fehlt halt noch etwas das verständniss dafür (doch es wird immer besser^^)

thx a lot... Very Happy

Mathias-Kwiatkowski

BeitragMi, Jan 03, 2007 5:55
Antworten mit Zitat
Benutzer-Profile anzeigen
nur ein anhang falls du mal function's benutzt wenn du innerhalb einer function des image benutzen willst so mach diese image global

z.b.

global meinbild=loadimage("C:\bild.bmp")


dann kannst du es im gesammten programm nutzen.

FreetimeCoder

BeitragMi, Jan 03, 2007 11:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Hier mein code (wahrscheinlich noch sehr unübersichtlich ^^)


Tipp: Rücke den Code ein:

Code: [AUSKLAPPEN]
If Blabla=1
   DiesundDas=1
ElseIf BlaBla=2
   If Blablaunddies=2
      DiesundDas=2
   Else
      DiesundDas=3   
   EndIf
EndIf


Code: [AUSKLAPPEN]
Repeat
   
   ;BLABLA
   ;eingerückt
   
Until KeyHit(1)

usw.

Das macht den Code übersichtlicher. Besonders, wenn du viel Code hast.
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group