2 Fragen wegen FPS und Gegner

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

eziX

Betreff: 2 Fragen wegen FPS und Gegner

BeitragFr, Sep 09, 2005 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab 2 Fragen:


1. Wie kann ich FPS anzeigen

und

2. wie mache ich es, dass ein gegner sich in einem bestimmten bereich immer hin und her bewegt und nur stirbt, wenn man auf den kopf springt und, wenn man frontal gegeen den gegner läuft 10 % seiner lebensenergie abgezogen bekommt


MfG

Blitz3D

BeitragFr, Sep 09, 2005 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
1.) Guckst du Codearchiv

2.) 2D oder 3D?
User posted image
Xware Entertainment und Forum
User posted image

eziX

BeitragFr, Sep 09, 2005 16:34
Antworten mit Zitat
Benutzer-Profile anzeigen
2d und ich hab im codearchiv nichts gefunden nur den einen beitrag, aber beide codes funzen nicht, hab ich schon ausprobiert

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Sep 09, 2005 17:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Um FPS auszurechnen gibt es mehrere Methoden. Ich erkläre mal zwei davon. 1.) Möglichkeit: Du erhöhst pro Schleifendurchlauf eine Variable um 1, nach einer Sekunde kopierst du den Wert in eine andere Variable und zeigst diese an, dabei setzt du die erste wieder auf Null. 2.) Möglichkeit: Du rechnest rechnest pro Schleifendurchlauf die Zeit die ein Schleifendurchlauf benötigt mit MilliSecs(). Um aus der MilliSecs-dauer die FPS auszurechnen musst du die Differenz zweier Zahlen umrechnen. Beispiel:
Code: [AUSKLAPPEN]
Graphics 400,400,32,2
SetBuffer BackBuffer()

msd%=1
msa%=0



While Not KeyHit(1)

 Delay 80

 Text 100,100,Int(1000/msd)
 msd=MilliSecs()-msa
 msa=MilliSecs()

 Flip
 Cls
Wend
End

darth

Betreff: ..

BeitragFr, Sep 09, 2005 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
hi
also ich machs "einfach"... =) hoffe es stimmt trotzdem
Code: [AUSKLAPPEN]
FPS=FPS+1
If MilliSecs()-fps_time>=1000 Then
 fps_time=MilliSecs()
 FPS_cur=FPS
 FPS=0
EndIf
Text 10,10,FPS_cur

das ist alles...
(natürlich in die hauptschleife tun, nach update/render - vor flip)
Diese Signatur ist leer.

Spikespine

BeitragFr, Sep 09, 2005 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, also es bringt eigentlich nichts wenn dir hier jemand einen Code vorschmeißt, aber bitte:
BlitzBasic: [AUSKLAPPEN]
Graphics 320,240,32,2
SetBuffer BackBuffer()
SeedRnd MilliSecs()

p_y# = 220
g_leben=1

p_x# = Rand(0,311)
g_x# = Rand(0,299)
g_richtung# = -2

p_leben = 100

Repeat
Cls

;...spieler..........................
If KeyDown(205) Then
p_x# = p_x# + 1
ElseIf KeyDown(203) Then
p_x# = p_x# - 1
EndIf
If KeyHit(200) Then
p_ys# = -5
EndIf

p_y# = p_y# + p_ys#

If p_y# < 220 Then
p_ys# = p_ys# + .2
Else
p_ys# = 0
p_y# = 220
EndIf


;........................................

;...gegner...............................
If g_leben = 1 Then
g_x# = g_x# + g_richtung#
If g_x# <= 0 Then
g_richtung# = +1.5
ElseIf g_x# >= 300 Then
g_richtung# = -1.5
EndIf
Color 255,0,0
Rect g_x#,230,20,10

;;;;;;;;;;;;; HIER DIE KOLLISION ;;;;;;;;
If RectsOverlap(p_x#,p_y#,8,20,g_x#,230,20,10) Then
If p_ys > 0 Then
g_leben=0
p_ys = -p_ys/2
Else
p_x# = p_x# + g_richtung
p_leben=p_leben-10
g_richtung = -g_richtung
EndIf
EndIf
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
EndIf

If p_leben > 0 Then
Color 255,255,255
Rect p_x,p_y,8,20
Color 255-(p_leben*2.5),p_leben*2.5,0
Rect 5,5,p_leben,10
EndIf


Flip
Until KeyHit(1)
End


Falls du nur nach einem Ansatz suchst: Die Kollisionsprüfung sollte klar sein. Wenn die Kollisionsprüfung positiv ausfällt, wird geprüft, ob der spieler gerade springt, genauer: ob er gerade fällt. Dann stirbt der gegner. Sonst (wenn er gerade nicht fällt, bedeutet dies dass er normal auf dem boden steht, oder kurz vor der berührung hochgesprungen ist, dann ziehe ich dem spieler leben ab.
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax

Alfadur

BeitragFr, Sep 09, 2005 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
2d und ich hab im codearchiv nichts gefunden nur den einen beitrag, aber beide codes funzen nicht, hab ich schon ausprobiert


genau, die codes im archiv sind alle mist... haha. vergiß es man, die funktionieren, warum wären sie sonst im archiv?
es liegt also an dir. folglich wäre es gut wenn du uns zeigst wie weit du bist. das bedeutet aber das du erstmal selber nachdenken mußt, einfach nur reinkopieren is nich ... wenn dann noch ein fehler ist können wir dir helfen. ist zwar nett das alle dir gleich code geben, wird dir aber nix bringen ...
A Cray is the only computer that runs an endless loop in less than four hours.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group