Frameunabhänging programmieren ... Wert zuhoch ?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Affenmann

Betreff: Frameunabhänging programmieren ... Wert zuhoch ?

BeitragDo, Nov 23, 2006 18:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey

Also nu hab ich endlich wieder nen Computer und kann euch nerven ; P

Habe nun wieder angefangen zu programmieren und nen Mapeditor geschrieben. Nun möcht ich ein RPG programmieren. Da hab ich mir gedacht, das ich doch eigentlich frameunabhängig programmieren könnte und das tutorial hier im forum durch gelesen.

Code: [AUSKLAPPEN]

Repeat

StartZeit = Millisecs()
;CODE
SchleifenZeit = Millisecs() - Startzeit

until keydown(1)


Und so lass ich die Spielfigur laufen

Code: [AUSKLAPPEN]

If Keydown(205) and Map(Spieler(1)\PosX/16+1,Spieler(1)\PosY/16,4)=0 then
Scrollx=Scrollx+(1*Schleifenzeit)
Spieler(1)\PosX=Spieler(1)\PosX+(1*Schleifenzeit)
endif


Nun hab ich das Problem ,dass wenn ich die 1 niedriger mache, die figur zwar langsamer geht aber anscheinend stimmt was mit den FPS nich mehr. Je mehr FPS desto langsamer bewegt sich die Figur. Nun frage ich mich wie ich die Figur langsamer machen kann ohne den Wert zu verändern ; P
 

timmeTheOnly

BeitragDo, Nov 23, 2006 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuch mal folgendes:

Code: [AUSKLAPPEN]

; Initialisierung deines Codes

global msTime, speed#

msTime = millisecs()

while not keyhit(1) ; Hauptschleife
  cls
  speed# = (millisecs() - msTime) / 1000 ; In Sekunden!

  deineVar = deineVar + 100 * speed# ; Mit dem 1. Faktor rumexperimentiern...
  flip
wend
end


MfG
T-Master

PS:

wie mach ich die blitzbasic codeansicht statt dem normalen [ code ] - Tag?
 

Affenmann

BeitragDo, Nov 23, 2006 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für deine Antwort ^^

deineVar = deineVar + 100 * speed#

Code: [AUSKLAPPEN]

Schleifenzeit= Schleifenzeit + 100 * speed#

If Keydown(205) and Map(Spieler(1)\PosX/16+1,Spieler(1)\PosY/16,4)=0 then
Scrollx=Scrollx+(1*Schleifenzeit)
Spieler(1)\PosX=Spieler(1)\PosX+(1*Schleifenzeit)
endif


Hab das so gemacht aber nu bewegt sich nix mehr : )
 

timmeTheOnly

BeitragDo, Nov 23, 2006 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Lol...

speed# ist doch schon deine Variable, du brauchst schleifenzeit nichtmehr...

nimm alles mit speed# mal. und der faktor 1 ist ja dann zu wenig

MfG
T-Master
 

Affenmann

BeitragDo, Nov 23, 2006 19:16
Antworten mit Zitat
Benutzer-Profile anzeigen
aha
und deinevar bleibt so ? oder benenn ich die um ?
 

timmeTheOnly

BeitragDo, Nov 23, 2006 19:18
Antworten mit Zitat
Benutzer-Profile anzeigen
ne, die ist zum Bleistift deine Spielerkoordinate.

das sollte blos ein beispiel (=bleistift) für den faktor sein...

MfG
T-master

Tornado11

BeitragDo, Nov 23, 2006 20:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm, Affenmann ein RPG zu Programmieren ist ziemlich das schwierigste was es zu Programmieren gibt.
Ich spreche nicht aus Erfahrung, sonder vom lesen der anderer Beiträge ,die etwas ähnliches sagen wollten.
Fang klein an! (Mache ich auch so ) Razz

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group