| |
|
|
- Page 1 - |
|
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 |
|
|
| |
|
|
|
| |
|
- Page 1 - |
|
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") |
|
|
| |
|
|
| |
|
- Page 2 - |
|
|
| Cerca mal nach Tron und W3D - mindestens bei einem von beiden hatte ich imho die Sources gepostet - und beide nutzen dieses Verfahren. Kann ich aber auch nochmals posten wenn ich wieder im Lande bin. |
|
|
| |
|
|
|
Matz Progger |
Es geht immernoch nicht. Und ich verstehe es nicht.
Die Sphere wird ja angezeigt allso ist doch alles in Ordnung. Aber warum wird das nicht Triangles nicht angezeigt. KompilierenMarkierenSeparierenPrint %maxx,%maxy
declare hWnd&
oGL("Init",%hWnd, 0,.2, 1, 1)
oGl("glTranslatef",0, 0,-50)
Proc Rendern
oGL("Clear")
OGl("Origin",0,0,-6)
OGl("Sphere",1,16,16)
oGl("glBegin",~GL_TRIANGLES)
OGl("glColor3f",1, 0, 0):OGl("glVertex3f",-1,-1, 0)
OGl("glColor3f",1, 0, 0):OGl("glVertex3f", 1,-1, 0)
OGl("glColor3f",1, 0, 0):OGL("glVertex3f", 0, 1, 0)
OGL("glEnd")
OGL("Show")
EndProc
cls
WhileNot %ScanKey=27
Rendern
endwhile
Das Turtorial ist von dort her: [...] |
|
|
| |
|
|