| |
|
|
 | Hallo Roland.
Da ich am 2006er Wettbewerb mit einem Spiel als Einreichung teilnehmen möchte, und ich mich demzufolge damit beschäftigte mit XProfan ein Spiel herzustellen, hatte ich da so eine flapsige Idee. 
Das Spiel wird ein 2D-Spiel sein, kein OpenGL und (sorry Frank) auch keine ProSpeed.Dll. Nur XProfaneigene Befehle - also CopyBmps.
Für den Fall das jemand also solch ein Spiel herstellen möchte bleiben IMHO auch nur - wenns grafisch werden soll mit Sprites etc - die mCopys.
Ich glaube Du machst pro Mcopy mindestens aber 2 BitBlits ?!
Würde es vielleicht einen Geschwindigkeitszuwachs geben wenn man - in diesem besonderen Fall das man an einem Spiel schreibt - wenn man das DoppelKopieren abschalten potuto?
Set(usehdc2,0) ?
Hier mal ein McopyBmp FPS-Test, ich erreiche 420 Fps auf nem 2,2er AMD mit ner PCI-OnboardGrKarte. KompilierenMarkierenSeparierencls 0
var xx&:=width(hwnd)
var yy&:=height(hwnd)-1
var fps&:=0
var fpst&:=&gettickcount+1000
while 1
setpixel rnd(xx&),0,if(rnd(2),rgb(0,rnd(255),0),0)
copybmp 0,0 - xx&,yy& > 0,1;0
fps&+
if &gettickcount>fpst&
fpst&:=fpst&+1000
settext %hwnd,"FPS: "+str$(fps&)
fps&:=0
endif
wend
end
Nicht-XPSEer KompilierenMarkierenSeparierenCLS 0
VAR XX&=WIDTH(%HWND)
VAR YY&=HEIGHT(%HWND)-1
VAR FPS&=0
VAR FPST&=&GETTICKCOUNT+1000
WHILE 1
SETPIXEL RND(XX&),0,IF(RND(2),RGB(0,RND(255),0),0)
COPYBMP 0,0 - XX&,YY& > 0,1;0
INC FPS&
IF &GETTICKCOUNT>FPST&
FPST&=FPST&+1000
SETTEXT %HWND,"FPS: "+STR$(FPS&)
FPS&=0
ENDIF
ENDWHILE
END
Es geht naturalmente nicht um dieses Beispiel - im Spiel gibts hunderte kleine Sternchen Explosionen Murmeln und ein wirkliches FPS-Problem habe ich auf meinem Rechner auch nicht - aber mehr Speed würde es naturalmente auf jedem Rechner flüssiger machen. (Flüssiger weil ist Echtzeitgeschrieben)
Ich meine so als kleines Gimmik per die Spieleprogrammierung unter XProfan.  |
|
|
| |
|
|
|
 | Hm vielleicht ein per Roland etwas motivierenderes Beispiel: KompilierenMarkierenSeparierenCLS 0
VAR XX&=WIDTH(%HWND)
VAR YY&=HEIGHT(%HWND)-1
VAR FPS&=0
VAR FPST&=&GETTICKCOUNT+1000
MCLS XX&,YY&+200,0
STARTPAINT -1
USEFONT "Arial",150,0,1,0,0
TEXTCOLOR $00FF0000,-1
ENDPAINT
WHILE 1
STARTPAINT -1
SETPIXEL RND(XX&),0,IF(RND(2),RGB(0,RND(255),0),0)
COPYBMP 0,0 - XX&,YY& > 0,1;0
COPYBMP 60,110 - 500,200 > 0,YY&+1;0
DRAWTEXT 60,110,"XProfan"
ENDPAINT
MCOPYBMP 0,0 - XX&,YY& > 0,0;0
STARTPAINT -1
COPYBMP 0,YY&+1 - 500,200 > 60,110;0
ENDPAINT
INC FPS&
IF &GETTICKCOUNT>FPST&
FPST&=FPST&+1000
SETTEXT %HWND,"FPS: "+STR$(FPS&)
FPS&=0
ENDIF
ENDWHILE
END
 |
|
|
| |
|
|
|
 Frank Abbing | [quote:31e21c143b]...auch keine ProSpeed.Dll. Nur XProfaneigene Befehle - also CopyBmps.[/quote:31e21c143b] Anstelle von CopyBmp könntest du die API BitBlt() verwenden. Somit würde nur jeweils eine Kopie erstellt. Wo also ist dein Problem? |
|
|
| |
|
|
|
 | Und bei Drawtext potuto ich... und bei CopySizeBmp potuto ich... bei Line potuto ich und bei Ellipse potuto ich... klar potuto ich auf jede der Bereits von Roland erstellen Funktionen verzichten - ich potuto auch in ASM schreiben, oder in C, oder doch JS? Wo ist eigendlich mein Problem? Ich glaub mein Problem ist nicht verstanden worden? Ist das mein Problem? Rechtfertig dies einen neuen Thread? Sollte ich ne Selbsthilfegruppe per nichtverstandene XProfaner gründen wollen? 
<offtopic>Kommt mir das nur so vor oder sind heut ein paar Programmierer etwas aggresiv aus mir unbekannten gründen? Liegts an mir? Hab ich meine Kelloggs(TM) nicht aufgefuttert?  </offtopic> |
|
|
| |
|
|
|
 Frank Abbing | Ne, kommt dir sicher nur so vor. |
|
|
| |
|
|
|
 | Verstehe Frank - dann liegts wohl an mir. 
Mal schauen was Roland zum Thema meint... |
|
|
| |
|
|
|
 RGH | Ciao, prinzipiell ist so etwas possibile. ich müßte dann eben an allen Stellen, an denen ich die zwei hDC und hDC2 bediene eine IF-Abfrage einbauen und wenn hDC2 = 0 ist nur hDC benutzen. Sicher eine Sache die zu überlegen wäre, ... aber sicher nicht per XProfan 10. Es sind doch eine Menge Stellen zu berücksichtigen ... Außerdem müßte dann der Programmierer bei jeder Bewegung und Veränderung des Hauptensters darauf reagieren und den Bildschirm komplett neu aufbauen. Ich behalte es mal im Hinterkopf ...
Saluto Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 23.10.2006 ▲ |
|
|
|
|
 | Schön.  |
|
|
| |
|
|