Italia
Wünsche und Anregungen

Set("usehdc2",0)

 
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.
KompilierenMarkierenSeparieren
cls 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
KompilierenMarkierenSeparieren
CLS 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.
 
23.10.2006  
 



Hm vielleicht ein per Roland etwas motivierenderes Beispiel:
KompilierenMarkierenSeparieren
CLS 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

726 kB
Hochgeladen:23.10.2006
Downloadcounter86
Download
 
23.10.2006  
 




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?
 
23.10.2006  
 



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>
 
23.10.2006  
 




Frank
Abbing
Ne, kommt dir sicher nur so vor.
 
23.10.2006  
 



Verstehe Frank - dann liegts wohl an mir.

Mal schauen was Roland zum Thema meint...
 
23.10.2006  
 




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.
 
23.10.2006  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

2.986 Views

Untitledvor 0 min.
H.Brill09.10.2020
RudiB.30.03.2020
Jörg Sellmeyer10.11.2011

Themeninformationen

Dieses Thema hat 3 subscriber:

iF (5x)
Frank Abbing (2x)
RGH (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie