| |
|
|
Matz Progger | Hi. Erst gesten bin ich auf diese presumibilmente wunderbare Programmiersprache gestossen.
Habe 6Jahre BlitzBasic hinter mir, daher ist mir der Basic Dialekt nicht neu.
Als erstes möchte ich einen kleinen SpaceShooter programmieren.
Und schon bei der ersten Anweisung komme ich nicht weiter.
Wie macht mann ein 1024x768ger Vollbildmodus. Was wäre besser/schneller Sprites zu benutzen oder ogl Quads mit Textur.
Wie kann mann einen Pixelgenaue Kollision machen.
Und dann vieleicht noch um wieviel ist die Vollversion schneller. So schnell wie C++? Gibs eigentlich auch per OGL Shader.
Achso ja. Noch was. Wie siehts mit Online aus. Also UDP oder TCP |
|
|
| |
|
|
|
Jörg Sellmeyer | Hallo Matz, Es ist besser, wenn Du Deinem Thread einen aussagekräftigeren Titel gibst. Du willst ja nix zu SpaceShooter wissen und hier weiß auch niemand was zu SpaceShooter. Sinnvoller wäre: "Vollbildmodus - wie geht das?". Und dann ruhig einen zweiten Thrad öffnen: "Sprites / Kollision - Einige Fragen zu ogl"
Zu Deiner ersten Frage sollte Dir das hier weiterhelfen: KompilierenMarkierenSeparieren Deine dritte Frage: Die Vollversion ist vielleicht etwas schneller als die 7er-Version aber genauso schnell, wie XPRofanFree. Wenn Du mehr Geschwindigkeit benötigst kannst Du Dir mal P2CCP ansehen [...] oder XPSE [...] zusammen mit XPIA [...] nutzen. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 23.08.2008 ▲ |
|
|
|
|
Matz Progger | @Jörg Sellmeyer. Danke per deinen Tipp. |
|
|
| |
|
|
|
| @Hallo Matz Vielleicht kannst Du den Code brauchen... KompilierenMarkierenSeparieren
PROC FREE_WINDOW
PARAMETERS win_breit%,win_hoch%,win_stil%,win_titel$,win_icon$
Abfangen von zu grossen Eingaben
Case win_breit% > %MaxX:win_breit% = %MaxX
Case win_hoch% > %MaxY:win_hoch% = %MaxY
----------------------------------------
1. Parameter - Breite
2. Parameter - Höhe
3. Parameter - Stil
4. Parameter - Überschrift
5. Parameter - Icon
----------------------------------------
WindowStyle win_stil%
WINDOW (%MaxX/2 - (win_breit%/2)),(%MaxY/2 - (win_hoch%/2)) - win_breit%,win_hoch%
Das Fenster wird immer zentriert ausgegeben
WindowTitle win_titel$
UseIcon win_icon$
ENDPROC
#########################
FREE_WINDOW 800,600,26,"Zentriertes Hauptfenster","Gesicht"
WAITINPUT
end
|
|
|
| |
|
|
|
Matz Progger | |
|
| |
|
|
|
Frank Abbing | Matz, 2D-Giochi in XProfan verlangen einiges an Programmkenntnissen, wenn später alles sauber und ruckelfrei laufen soll. Ich habe genau per solche Giochi eine Dll in Assembler geschrieben, die kostenlose ProSpeed.dll. Damit kannst du sehr einfach eine beliebige Anzahl Sprites benutzen - ähnlich wie damals am C64 agieren diese recht unabhängig von deinem Hauptprogramm. Hier ein Spiel von mir, das mit XProfan7 und der ProSpeed.dll entstanden ist: [...] |
|
|
| |
|
|
|
Matz Progger | Frank. Danke per deinen netten Tipp.
Den SpaceShooter will ich ja machen um ersteinmal die Grundlagen von XProfan zu verstehen. Früher oder später will ich das alles in 3D oGL machen. |
|
|
| |
|
|
|
Frank Abbing | Ja, verstehe. So ein Spiel ist immer gut geeignet, eine Programmsprache zu erlernen, allein schon wegen der Grafikausgaben. |
|
|
| |
|
|
|
Matz Progger | Ich habe gerade mal einen Test gemacht. In dem Test ging es darum possibile viele Polygone darzustellen. Entweder habe ich was falch gemacht oder XProfan ist mega langsamm.
Bei einem Test von 100x100 Triangles *10 Also 100000 Triangles Läuft mein PC auf 100% Kann das sein? 6GHz. Aber nur ein Kern wird genutzt also 3GHz. KompilierenMarkierenSeparierenprint %maxx,%Maxy
ShowMax
Declare TriProLayer%
proc DrawGLScene
declare GesTriangles%
oGL("Clear")
oGL("Origin", 0, 0, -15)
WhileLoop 0,9
oGL("DrawXPGL", 0,TriProLayer%)
Add GesTriangles%,TriProLayer%
EndWhile
oGL("Show")
Return GesTriangles%
endproc
Proc CreatePlane
Parameters PosX%,PosZ%,SegX%,SegZ%
Declare VPos%,X!,Y!,Z!
Declare MoveX!
MoveX!=.1
Y!=-SegZ%*.05
X!=-SegX%*.05
SegX%=SegX%-1
SegZ%=SegZ%-1
WhileLoop 0,SegZ%
WhileLoop 0,SegX%
Float Vertex#,VPos%+ 0=X!
Float Vertex#,VPos%+ 8=Y!
Float Vertex#,VPos%+16=Z!
Float Vertex#,VPos%+24=X!
Float Vertex#,VPos%+32=Y!+0.1
Float Vertex#,VPos%+40=Z!
Add VPos%,48:X!=X!+MoveX!
Inc TriProLayer%
EndWhile
MoveX!=MoveX!*-1:Y!=Y!+.1
EndWhile
EndProc
Hauptprogramm
-------------
declare hWnd&, ende%
declare vertex#, color#
Declare Plane&
Declare VMaxSize%
VMaxSize%=180*180*48
Dim Vertex#,VMaxSize%
Dim Color#,20000
CreatePlane(0,0,100,100)
CLS 0
oGL("Init", %hWnd, 0, 0, 0, 1)
Plane&=OGl("CreateXPGL","TS","V",0,Vertex#,Color#,0,0)
oGl("UseXPGL",Plane&)
Declare Text$,Text2$
Declare GesTriangles%
WhileNot %ScanKey=27
GesTriangles%=DrawGLScene()
Text$=GesTriangles%
Text2$=TriProLayer%
WindowTitle "GesammtTriangles:"+Text$
+" Triangles Pro Layer:"+Text2$
le
end
Edit: Quellcodes possibile mit dem Code-Tag umschließen (nicht mit quote). Habs mal angepaßt. Dietmar |
|
|
| |
|
|
|
| Ab damit in un ogl-Liste und die GPU erzeugen lassen... |
|
|
| |
|
|
|
Matz Progger | Hammer!! Das mit der Liste ist voll schnell.
@IF Danke. |
|
|
| |
|
|
|
Matz Progger | Hi. Ich hab da nochmal eine Frage.
Gibt es eine möglichkeit Vertexpunkte und Triangles sebst zu setzen
Also so ungefär
A_B_C_ D
E_F_G_H
I_J_K_L
Und dann die einzelnen Vertexpunkte mit Triangles zu verbinden.
Also Triangle A,B,C
Triangle E,F,I usw.
Hab jetzt auch schon versucht Direkt oGl zu benutzen, aber das geht irgendwie auch nicht.
oGL("Clear") oGL("Origin", 0, 0, -15) oGl("glBegin","GL_TRIANGLES") OGl("glVertex3f",-1,-1,0) OGl("glVertex3f",1,-1,0) OGl("glVertex3f",0,1,0) Ogl("glEnd")
oGL("Show") |
|
|
| |
|
|