Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan > Spiele & OpenGL

Spiele & OpenGL Spiele in XProfan und Fragen zur Spieleprogrammierung

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26915, Antworten: 4218
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3326, Antworten: 122
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 312, Antworten: 19
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7643, Antworten: 185
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 20, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 23, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 58, Antworten: 6
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 146, Antworten: 9
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 71, Antworten: 4
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50944, Antworten: 1395
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06.07.2009, 16:52   #1 (Direktlink)
Dirk
Gast
 
Beiträge: n/a
Standard Problem mit 2D Screenscrolling

Hallo,

Ich benutze Xprofan 10a und wollte ein kleines 2D Spiel in OpenGL schreiben. Jetzt habe ich das Problem, dass ich den Bildschirm nicht verschieben (Scrollen) kann.
Ich würde gerne eine Map machen die vll so 2000x2000 Pixel groß ist und man Ausschnitte davon sieht falls das Fahrzeug am Ort ist.
Ich habe auch schon ein paar Funktionen über den Api-Aufruf versucht aber es funktionierte nicht.Zum Beispiel hab ich die Translatef Methode probiert. Ich habe bereits erfolgreich in Java mit OpenGL gecodet und wollt Xprofan probieren, da es mir einfacher erschien^^ Habt ihr vielleicht ein paar Ideen? Vielleicht könnte man das Auto ("Quad") auf eine große Bitmap (oder Backbuffer?) zeichnen lassen und diese dann auf dem Bildschirm anzeigen lassen.
Ich hab aber im Moment keine Ahnung wie ich das in Xprofan mit OGL umsetzen soll.

Kennt ihr auch ein paar gute Tutorials für OpenGL mit Xprofan? Die OpenGL Tutorials in der Profan Referenz hab ich soweit durch. Auch die OpenGL Tutorials im Internet kenne ich schon aber die beziehen sich nicht auf Profan! (nur c++, java ...).

Gruß Dirk

Hier der Code:

'Testprogramm
declare time&, frames%
'
Declare KeyCode%[256]
'Klasse Fahrzeug
Class Fahrzeug = Leben%, Xpos!, Ypos!,Xspeed!,Yspeed!,Winkel!
'Spieler deklarieren
Declare Spieler#
'Objekt aus der Klasse Fahrzeug erstellen
Dim Spieler#,Fahrzeug

'Unterprogramme
'Unterprogramm zum zeichnen
proc DrawGLScene
oGL("Clear")
oGL("PosMode", 1)
oGL("Origin", Spieler#.xpos!,Spieler#.ypos!,-100)
oGL("Color", 0, 0, 1, 1)
oGL("Rotate", 0, 0,-Spieler#.Winkel!)
oGL("Cuboid", 3,5, 2)

' oGL("glTranslatef", 0,0,10) 'Hier habe ich versucht den Screen zu verschieben; ging nicht
'Da würden dann die Variablen Screenx!, ScreenY! stehen
oGL("Show")
endproc
'FPS
proc Checkefps
inc frames%
if &GetTickCount - time& >= 1000 ' 1 Sekunde ist 'rum
setText %hWnd, str$(frames%) + " Frames/sek"
time& = &GetTickCount

frames% = 0
endif
endproc

' Hauptprogramm
' -------------
declare ende%
'Init
Spieler#.Winkel!=0
CLS 0
window 0,0 - %maxx,%maxy 'Bildschirmgröße maximal
oGL("Init", %hWnd, 0, 0, 0, 0)
oGL("PosMode", 1)
time& = &GetTickCount
frames% = 0
ende% = 0
setTimer 20 ' max 50 Frames /sek.
WhileNot ende%
WaitInput 'Warte auf Eingabe
'Tastendrücke abfragen
if isKey(27) 'Falls ESC gedrückt, dann Programm beenden
ende% = 1
endif
if isKey($25)
Spieler#.Winkel!=Spieler#.Winkel!-7
endif
if isKey($27)
Spieler#.Winkel!=Spieler#.Winkel!+7
endif
if isKey($26)
Spieler#.Xpos!=Spieler#.Xpos!+@Sin(Spieler#.Winkel!*3.141/180)
Spieler#.Ypos!=Spieler#.Ypos!+@Cos(Spieler#.Winkel!*3.141/180)
endif
if isKey($28)
Spieler#.Xpos!=Spieler#.Xpos!-@Sin(Spieler#.Winkel!*3.141/180)
Spieler#.Ypos!=Spieler#.Ypos!-@Cos(Spieler#.Winkel!*3.141/180)
endif

DrawGLScene() 'Zeichnen
checkefps() 'FPS anzeigen
EndWhile
killTimer
end
  Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 07.07.2009, 19:31   #2 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

David Strutz hat mal eine nützliche Include-Datei (ogl_helper.inc) geschrieben. Da ist sicher das Passende für dich dabei. Ich erinnere mich an ein nettes, butterweiches 3-Ebenen-Parallax-Scrolling-Demo. Such mal in der Community danach.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 07.07.2009, 21:07   #3 (Direktlink)
Dirk
Gast
 
Beiträge: n/a
Standard

Danke für die Hilfe.
Die oglhelper.inc finde ich nicht. hab überall gesucht. google. profan homepage...
Gibt sie wohl scheinbar nicht mehr. Aber das Beispiel mit dem Scrolling habe ich gefunden. Das ist das mit der Katze oder?
Ich werd mal versuchen eine dll in c++ oder eine eigene inc zu machen für profan mit den Opengl befehlen.

Gruß Dirk
  Mit Zitat antworten
Alt 07.07.2009, 21:16   #4 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Die Katze, genau.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 08.07.2009, 13:34   #5 (Direktlink)
iF_
Weiß worum´s geht
 
Benutzerbild von iF_
 
Registriert seit: 08.02.2009
Ort: Berlin
Beiträge: 226
Standard

Danke Frank!

Die "Katze" gibts unter http://dl.xprofan.com/?3167 zu laden ^^ , man findet den Thread z.B. indem man auf der Intro-Seite http://xprofan.com/ im Suchfeld einfach z.B. "scrolling" eingibt. (Hier ists auch dabei: http://xprofan.com/content.mx?codes&search=scroll )

Die oglhelper.inc war einzeln noch nicht veröffentlicht (auch wenn sie zu einzelnen Beispielen mitgeliefert ist), weil diese sich sozusagen noch unter ständiger Optimierung befindet.

Beispielsweise kannst Du eine Version aus dem oglui-Paket laden http://dl.xprofan.com/?4681 bzw. http://xprofan.com/thread.core?t=7588 .
__________________
Programmieren für Anfänger.

Geändert von iF_ (08.07.2009 um 13:55 Uhr)
iF_ ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 18.07.2009, 19:34   #6 (Direktlink)
Ist öfter hier
 
Registriert seit: 21.02.2009
Beiträge: 71
Standard

Drücke mal die Button "vorwärts" und "rückwärts".

Das Gelände könnte dein 1. Layer sein.
Und darüber bingst du dein 2. Layer (Bäume) und darüber dein 3.Layer (Auto).

Wenn du alle unterschiedlich bewegst, erkennst du sogar die täuschende Raumtiefe.

mfg

Code:
declare ende%
declare rquad!, wert!,rquad1!
Declare hWin&, hDlg1&, hDlg&
declare B1%,B2%,B3%,B0%

rquad!=-2
 
 proc DrawGLScene
  oGL("Clear")
  
  oGL("Origin", rquad!, 0, -6) 
  oGL("Color", 0, 0, 1, 1) 
  oGL("Quad", 2, 2)
  
  oGL("Origin", rquad!*1.3, 0, -5.9)
  oGL("Color", 1, 0, 0, 1)
  oGL("Quad", 1.5, 1.5)
  
  oGL("Origin", rquad!*1.6, 0, -5.8)
  oGL("Color", 1, 1, 0, 0)
  oGL("Quad", 1, 1)
  
  oGL("Show")
  
  rquad! = rquad! + wert!
 
  if rquad! > 2
    rquad! = 2
  endif 
  if rquad! < -2
    rquad! = -2
  endif 
  
endproc

hWin& = @Create("Window", %hWnd, "Test1", 0, 0, 320, 200)
hDlg& = @Create("Dialog", hWin&, "Test2", 320, 200, 320, 200)
hDlg1& = @Create("Dialog", hWin&, "Test3", 0, 200, 320, 200)

B1% = @Create("Button",hDlg&,"vorwärts",020,020,100,030)
B2% = @Create("Button",hDlg&,"rückwärts",20,060,100,030)
B3% = @Create("Button",hDlg&,"ende",20,100,100,030)
B0% = Create("Button",hDlg&,"",0,0,0,0)

oGL("Init", hwin&, 0, 0, 0, 0)
oGL("PosMode", 1)

Ende% = 0  
wert!=0


WhileNot ende%

    sleep 1
    
    If Getfocus(B1%) 
      wert!=wert!+0.005
       setfocus(B0%)
    elseIf Getfocus(B2%)
      wert!=wert!-0.005
       setfocus(B0%)
    ElseIf @Clicked(B3%)
      ende%=1
    EndIf
  
   DrawGLScene  
   
   StartPaint hDlg1&
    
     DrawText 20,50,("rquad! = " + Format$("#####0'  '",rquad!))
    
  EndPaint
   
EndWhile

End

Geändert von profanfan (18.07.2009 um 20:02 Uhr)
profanfan ist offline   Mit Zitat antworten
Alt 19.07.2009, 12:11   #7 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Der Code ist für den Anfang nicht schlecht. Vielleicht änderst du ihn nochmal, indem du Bitmaps anstelle der Quadrate setzt, bzw. den Flächen eine Bitmap zuweist.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > XProfan > Spiele & OpenGL

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Direct3D Problem NEUES PROBLEM Bonser Treiber-Forum 3 28.11.2007 14:42
Problem mit Game. Grafiktreiber Problem?!?! Chillers Hardware - Problemlösungen 4 16.05.2006 16:13
Counter Strike: Server Problem sowie Online Problem Simon@Xp Computerspiele 4 10.04.2006 14:30
Bildschirm friert ein - DirectX Problem - ATI-Problem LudBri Allgemein 1 01.01.2006 13:02
Problem (Keine Ahnung, welches Problem das ist) Der_Gast Hardware - Problemlösungen 3 11.10.2003 18:17



Alle Zeitangaben in WEZ +2. Es ist jetzt 06:14 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2