Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Gfx Spielereien
Gehe zu Seite Zurück  1, 2, 3
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 773
Wohnort: Ruhrpott

BeitragVerfasst am: 20.03.2017, 20:58    Titel: Antworten mit Zitat

Kein Problem bei mir (WinXP SP3 / fbc 1.05.0 / 32bit). Programm compiliert und läuft einwandfrei. (Und die Enterprise finde ich echt witzig! lächeln )

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4147
Wohnort: ~/

BeitragVerfasst am: 20.03.2017, 22:34    Titel: Antworten mit Zitat

Mal sicherheitshalber dazu gesagt, dass man mit
Code:
fbc "Rotating Earth Res v1.7.bas" "Rotating Earth Res v1.7.rc"

compilieren muss. Wenn es Fehler bei der Ausführung der .rc gibt, sollte der Compiliervorgang eigentlich fehlschlagen.
_________________
Meine Großeltern waren als junge Menschen sehr modern - sie hatten schon damals in der Badewanne Email.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Elor



Anmeldungsdatum: 12.07.2013
Beiträge: 205
Wohnort: Konstanz

BeitragVerfasst am: 21.03.2017, 12:00    Titel: Antworten mit Zitat

Oh man, nemored, du hast recht, ich hab die Resourcen vergessen peinlich
Ich hab's einfach so mit Geany Kompiliert, also, falscher alarm.

@UEZ:
Sieht gut aus, hast eigentlich was größeres vor oder ist das mit der Enterprise nur Zufall lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
UEZ



Anmeldungsdatum: 24.06.2016
Beiträge: 63
Wohnort: Opel Stadt

BeitragVerfasst am: 21.03.2017, 17:30    Titel: Antworten mit Zitat

Elor hat Folgendes geschrieben:
Oh man, nemored, du hast recht, ich hab die Resourcen vergessen peinlich
Ich hab's einfach so mit Geany Kompiliert, also, falscher alarm.

@UEZ:
Sieht gut aus, hast eigentlich was größeres vor oder ist das mit der Enterprise nur Zufall lächeln


Was größeres habe ich eigentlich nicht vor, da die FPS ja sehr limitiert sind - da geht nicht viel mehr. Wenn ich noch die Drehung vom Mond hinzufügen würde, dann hatte man eine Slideshow. zwinkern

Das mit der Enterprise war nur als Gag gedacht, da ein User Raumschiffe und / oder Meteoriten sehen wollte, aber wie gesagt, das Ende der Fahnenstange mit GDI+ erreicht ist.
_________________
Gruß,
UEZ
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
UEZ



Anmeldungsdatum: 24.06.2016
Beiträge: 63
Wohnort: Opel Stadt

BeitragVerfasst am: 14.09.2017, 23:10    Titel: 3D Starfield Rotating Flight Antworten mit Zitat

Nächstes Beispiel "3D Sternen Flug":

Code:
'coded by UEZ build 2017-09-15
#include "fbgfx.bi"
#Include "string.bi"

Using FB

Declare Function _Sin6th(fX As Double) As Double
Declare Function _Cos6th(fX As Double) As Double


Dim as Integer iW, iH
ScreenControl GET_DESKTOP_SIZE, iW, iH
Dim as Integer iW2 = iW \ 2, iH2 = iH \ 2, iW3 = iW \ 3, iH3 = iH \ 3
screenres iW, iH, 32, 1, GFX_FULLSCREEN or GFX_HIGH_PRIORITY

Type tStar
   as Double v, x, y, z, colour
End Type

Dim as UInteger i, iPhase, iMaxStars = 50000
Dim as Double fNewX, fNewY, fRot = 0, c = -230, fRad = ACos(-1) / 180
Dim as UShort iLimes = 100, iFPS = 0 , iFPS_current = 0
Dim as UByte iColor, iLen
Dim as tStar Stars(iMaxStars)
Dim As Double fTime, fTimer
Dim As String sDrivername, sNumber
ScreenControl FB.GET_DRIVER_NAME, sDrivername

sNumber = Format(iMaxStars, "###,")
iLen = Len(Str(iMaxStars))
iPhase = 10^(iLen - 2)

Randomize

For i = 1 to iMaxStars
   Stars(i).v = 0.00001 + Rnd / 5000
   Stars(i).x = Rnd * (iW + iW2) - iW2
   Stars(i).y = Rnd * (iH + iH2) - iH2
   Stars(i).z = Rnd * 0.000003333
   Stars(i).colour = CUbyte(8 + Rnd * 8)
Next

fTimer = Timer

do
   screenlock
   Cls
   For i = 1 to iMaxStars
      Stars(i).colour *=  1.0125 + Stars(i).z
      iColor = Iif(Stars(i).colour > 255, 255, Iif(Stars(i).colour < 8, 8, CUbyte(Stars(i).colour)))
     
      Stars(i).x += Stars(i).x * Stars(i).z
      Stars(i).y += Stars(i).y * Stars(i).z
     
      fNewX = Stars(i).x * _Cos6th(fRot * fRad) - Stars(i).y * _Sin6th(fRot * fRad) + iW2
      fNewY = Stars(i).y * _Cos6th(fRot * fRad) + Stars(i).x * _Sin6th(fRot * fRad) + iH2
     
      Stars(i).z += Stars(i).v
     
      circle (fNewX, fNewY), 0.5 + Stars(i).z * 50, Rgb(iColor, iColor, iColor), , , , F
     
      If (fNewX < -iLimes) or (fNewX > iW + iLimes) or (fNewY < -iLimes) or (fNewY > iH + iLimes) Then
         Stars(i).v = 0.00001 + Rnd / 5000
         Stars(i).x = Rnd * (iW + iW3) - iW2
         Stars(i).y = Rnd * (iH + iH3) - iH2
         Stars(i).z = Rnd * 0.000003333
         Stars(i).colour = CUbyte(8 + Rnd * 8)
      End If
      fRot += _Cos6th(c / iPhase) / (2 * iMaxStars)
      c += 0.000125
   Next
   
   Draw String(0, 0), sDrivername & ": " & sNumber & " stars @ " & iFPS_current & " fps", RGB(&hA0, &hA0, &hA0)
   Draw String(iW - 100, 0), "Coded by UEZ", RGB(&h50, &h50, &h50)
   Draw String(0, iH - 10), iW & " x " & iH, RGB(&h80, &h80, &h80)
   
   If Timer - fTimer > 0.99 Then
      iFPS_current = iFPS
      iFPS = 0
      fTimer = Timer
   End If
   iFPS += 1
   screenunlock
   Sleep(10)
loop until Inkey = Chr(27)

Function _Sin6th(fX As Double) As Double
   Asm
      jmp _Sin6th_Start
         _Sin6th_Mul: .double 683565275.57643158
         _Sin6th_Div: .double -0.0000000061763971109087229
         _Sin6th_Rnd: .double 6755399441055744.0
       
      _Sin6th_Start:
         movq xmm0, [fX]
         mulsd xmm0, [_Sin6th_Mul]
         addsd xmm0, [_Sin6th_Rnd]
         movd ebx, xmm0
   
         lea  eax, [ebx*2+0x80000000]
         sar  eax, 2
         imul eax
         sar  ebx, 31
         lea  eax, [edx*2-0x70000000]
         lea  ecx, [edx*8+edx-0x24000000]
         imul edx
         xor  ecx, ebx
         lea  eax, [edx*8+edx+0x44A00000]
         imul ecx
         
         cvtsi2sd xmm0, edx
         mulsd xmm0, [_Sin6th_Div]
         movq [Function], xmm0
   End Asm
End Function

Function _Cos6th(fX As Double) As Double
   Asm
      jmp _Cos6th_Start
         _Cos6th_Mul: .double 683565275.57643158
         _Cos6th_Div: .double -0.0000000061763971109087229
         _Cos6th_Rnd: .double 6755399441055744.0
       
      _Cos6th_Start:
         movq xmm0, [fX]
         mulsd xmm0, [_Cos6th_Mul]
         addsd xmm0, [_Cos6th_Rnd]
         movd ebx, xmm0
         
         add ebx, 0x40000000 'SinToCos
   
         lea  eax, [ebx*2+0x80000000]
         sar  eax, 2
         imul eax
         sar  ebx, 31
         lea  eax, [edx*2-0x70000000]
         lea  ecx, [edx*8+edx-0x24000000]
         imul edx
         xor  ecx, ebx
         lea  eax, [edx*8+edx+0x44A00000]
         imul ecx
         
         cvtsi2sd xmm0, edx
         mulsd xmm0, [_Cos6th_Div]
         movq [Function], xmm0
   End Asm
End Function


Keine Ahnung, ob der Code unter Linux läuft.
_________________
Gruß,
UEZ


Zuletzt bearbeitet von UEZ am 15.09.2017, 12:10, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Marc Bonus



Anmeldungsdatum: 19.11.2016
Beiträge: 43

BeitragVerfasst am: 15.09.2017, 11:34    Titel: Re: 3D Starfield Rotating Flight Antworten mit Zitat

UEZ hat Folgendes geschrieben:
Keine Ahnung, ob der Code unter Linux läuft.


Läuft anstandslos unter Kubuntu 17.04 mit Geany.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
UEZ



Anmeldungsdatum: 24.06.2016
Beiträge: 63
Wohnort: Opel Stadt

BeitragVerfasst am: 15.09.2017, 12:09    Titel: Re: 3D Starfield Rotating Flight Antworten mit Zitat

Marc Bonus hat Folgendes geschrieben:
UEZ hat Folgendes geschrieben:
Keine Ahnung, ob der Code unter Linux läuft.


Läuft anstandslos unter Kubuntu 17.04 mit Geany.


Cool. lächeln

Was wird unter Linux als Driver_Name angezeigt? Was ist deine FPS?
_________________
Gruß,
UEZ
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Marc Bonus



Anmeldungsdatum: 19.11.2016
Beiträge: 43

BeitragVerfasst am: 15.09.2017, 12:30    Titel: Antworten mit Zitat

Links oben in der Ecke steht "X11: 50,000 stars @ 25 fps"

Die fps schwanken von 17 - 26. Habe hier allerdings nur einen 3 GHz Dual Core mit Onboard Grafik.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
UEZ



Anmeldungsdatum: 24.06.2016
Beiträge: 63
Wohnort: Opel Stadt

BeitragVerfasst am: 15.09.2017, 12:36    Titel: Antworten mit Zitat

Unter Windows wird anscheinend für x86 DirectX / x64 GDI benutzt.
Ich arbeite zwar nicht direkt mit Linux, aber X11 sagt mir was.

Bei mir sind es ca. 30 FPS bei 1600x900, wobei die FPS steigen würde, wenn man Sleep(10) auskommentiert.
_________________
Gruß,
UEZ
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4147
Wohnort: ~/

BeitragVerfasst am: 15.09.2017, 13:01    Titel: Antworten mit Zitat

Zum verwendeten Treiber steht hier noch was:
https://www.freebasic-portal.de/befehlsreferenz/interne-treiber-463.html
_________________
Meine Großeltern waren als junge Menschen sehr modern - sie hatten schon damals in der Badewanne Email.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 773
Wohnort: Ruhrpott

BeitragVerfasst am: 15.09.2017, 13:47    Titel: Antworten mit Zitat

Auf meinem Pentium IV 3,2GHz mit NVIDIA GeForce4 MX440 bei 1280 x 1024 unter WinXP SP3 (32 Bit) läuft das Programm mit stabilen 17 FPS.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
UEZ



Anmeldungsdatum: 24.06.2016
Beiträge: 63
Wohnort: Opel Stadt

BeitragVerfasst am: 25.10.2017, 15:43    Titel: Antworten mit Zitat

Und weiter geht's: GDI+ Kaleidoscope v0.9 build 2017-10-25 (nur Windows!)

Gibt es eine bessere Möglichkeit das Mausrad abzufragen? Z.B. über WM_MOUSEWHEEL?

Kann ich die Maus auch außerhalb der GUI abfragen?
_________________
Gruß,
UEZ
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 773
Wohnort: Ruhrpott

BeitragVerfasst am: 25.10.2017, 18:36    Titel: Antworten mit Zitat

Sehr beeindruckend! lächeln

Zitat:
Kann ich die Maus auch außerhalb der GUI abfragen?
Natürlich. Die Abfrage mit GetMouse ist doch außerhalb der GUI. Oder habe ich deine Frage falsch verstanden?

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
UEZ



Anmeldungsdatum: 24.06.2016
Beiträge: 63
Wohnort: Opel Stadt

BeitragVerfasst am: 25.10.2017, 19:28    Titel: Antworten mit Zitat

Wenn die Maus außerhalb der GUI ist, "schläft" die GUI, d.h. die Rotationen setzten aus, weil die Variablen dx und dy den Wert -1 bekommen.

Aus dem Help File:
"...0 on success, or 1 on error (for example because the mouse is outside the graphic window) or on failure."
_________________
Gruß,
UEZ
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9705
Wohnort: Neben der Festplatte

BeitragVerfasst am: 26.10.2017, 00:47    Titel: Antworten mit Zitat

Die Mausposition auf dem Bildschirm (statt nur im Grafikfenster) kannst du unter Windows mit GetCursorPos abfragen: https://msdn.microsoft.com/de-de/library/windows/desktop/ms648390(v=vs.85).aspx
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
UEZ



Anmeldungsdatum: 24.06.2016
Beiträge: 63
Wohnort: Opel Stadt

BeitragVerfasst am: 26.10.2017, 09:56    Titel: Antworten mit Zitat

Danke Jojo.

Habe den Code aktualisiert.
_________________
Gruß,
UEZ
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3
Seite 3 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz