MP3D Alpha 32

Du brauchst Grafiken, gute Programme oder Leute die dir helfen? Frag hier.
Benutzeravatar
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

Re: MP3D Alpha 32

Beitrag von udg »

N_Gnom hat geschrieben:Kann mir jemand eine andere simple exe hier kurz senden?
Zum testen bitte.
bitteschön:
http://rghost.net/51228439
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
N_Gnom
Beiträge: 149
Registriert: 11.09.2013 19:52

Re: MP3D Alpha 32

Beitrag von N_Gnom »

danke dir, aber bei mir lags am soundtreiber der die mp3d exen abstürzen lies...
Laptop: Win10@64bit - i3 2x2Ghz - 8GB Ram - 1TB HDD
Desktop: Win10@64bit - AMD Ryzen 5 2400G - MSI B450 Tomahawk - 8GB Ram - 240GB SSD
Benutzeravatar
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

Re: MP3D Alpha 32

Beitrag von udg »

@Mpz

hallo Meister der Lib .
zzt arbeite ich an einem V2M Mediaplayer unter Verwendung deiner MP3D.Lib unter PB v 4.61 :allright:

nun habe ich schon eher festgestellt, dass Deine Lib nur v2m Sounds der Version 1.5 unterstützt. Ich möchte Dich fragen ob:
~ es eine Möglichkeit gibt die v2m Sound Version 1.0 ebenfalls unterstützen zu können
~ gibt es eine Möglichkeit einen Loop V2M Sound Befehl setzen zu können *1
~ gibt es in der Lib die Möglichkeit, einen Font.ttf einzubinden und mit einem Befehl, sagen wir mal sowas wie CatchFont freizugeben

(könntest Du eine CatchFontTTF- Funktion implementieren?) PB unterstützt dies leider nicht und somit müsste ich den TTF Font Includen und später jedesmal in einen Tempordner schreiben,was VirenProgramme möglicherweise verhindern :(

*1
Der Player endet automatisch wenn das Ende eines Songs erreicht ist. Per Button kann man die Loop Funktion einschalten, sodass der Song nun wiederholt wird. Jedoch ist diese Methode
umständlich wie ich sie umsetzen musste.

Für Tipps wäre ich Dir sehr dankbar.

grüße inc
Zuletzt geändert von udg am 12.01.2014 06:55, insgesamt 1-mal geändert.
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
mpz
Beiträge: 497
Registriert: 14.06.2005 15:53
Computerausstattung: Win 10 Pro, 16 GB Ram, Intel I5 CPU und TI1070 Grafikkarte, PB 5.73 / 6.00 beta4
Wohnort: Berlin, Tempelhof

Re: MP3D Alpha 32

Beitrag von mpz »

Hi udg,

eine Nachfrage nach dem v2m ist schon laaaaaange her. Leider gibt es keine x64 Version davon und der Programmierer will da nicht mehr ran. Ist teilweise sogar in ASM geschrieben. Eine Loop Möglichkeit kann ich Dir sicher einbauen kommt auf die -> Todo Liste. V1.0 Unterstützung leider nicht, da hatte ich damals zu viel ändern müssen um das zu realisieren und man kann auch den Song nicht abfragen ob er 1.0 oder 1.5 ist. Da man die Songs aber "leicht" auf 1.5 ändern kann sollte man diese Songs anpassen. Wie man ein Font.tff einbindet weiß ich nicht, kann ich mir aber mal ansehen ob das geht. In MP3D kann man aber auch leicht Bitmap Fonts einbinden, ist für deine Zwecke denke ich eh flexibler....


Gruß Michael
Working on - MP3D Engine -
Benutzeravatar
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

Re: MP3D Alpha 32

Beitrag von udg »

Danke für deine Antwort.

Ich denke mir, dass ich den Converter einbinde, sodass der Player erkennt ob es eine Version 1.0 oder Version 1.5 ist. Wenn nun V1.0 gewählt wurde, soll der Converter den Song automatisch zu 1.5 konvertieren und dann den Song abspielen. Sollte zu realisieren gehen.

Die Loop Funktion war nur so eine Idee wie zb: MP_PlayV2MLoop() :)
Aber man kann ja auch ganz einfach den Song mit ein paar Zeilen Code wieder starten.

Ich habe die Loop Funktion wie man es von einem Mediaplayer gewohnt ist, nun mit einem Button versehen. (so solls ja auch sein)

Das mit dem Font (System TTF, wäre ober-cool wenn Du da eine Idee hättest), ansonsten werde ich auf einen 8*8 bmp Font zurückgreifen müssen den ich aus dem TTF Font mir dann erstelle.

Sei gegrüßt
Zuletzt geändert von udg am 23.01.2014 00:22, insgesamt 1-mal geändert.
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
mpz
Beiträge: 497
Registriert: 14.06.2005 15:53
Computerausstattung: Win 10 Pro, 16 GB Ram, Intel I5 CPU und TI1070 Grafikkarte, PB 5.73 / 6.00 beta4
Wohnort: Berlin, Tempelhof

Re: MP3D Alpha 32

Beitrag von mpz »

Hi,

wie man ttf Fonts als Resource dazulädt findest Du hier:
http://www.purebasic.fr/english/viewtop ... &hilit=TTF

In diesem Beispiel mache ich aus einem ttf Font ein 3d Mesh:

Code: Alles auswählen

#AppName$     = "Font"
#Appversion   = 1 : Global AppV$ = StrF(#Appversion/100.0,2) 
#ScreenWidth  = 1024
#ScreenHeight = 768

; Please font from here:
; www.myfont.de/download.php?winfont=zeichen-hundert&type=zip

MP_Graphics3D (#ScreenWidth, #ScreenHeight,0,1) ; Erstelle ein WindowsFenster mit 3D Funktion #Window = 0
SetWindowTitle(0, #AppName$+" v"+AppV$ )

camera=MP_CreateCamera()    ; Kamera erstellen
light= MP_CreateLight(1)    ; Es werde Licht

OpenLibrary(0,"gdi32.dll")

; Entspricht CatchFont
fontid=CallFunction(0,"AddFontMemResourceEx",?font,?end_font-?font,0,@"1")
CloseLibrary(0)

mesh1 = MP_Create3DText ("Zeichen Hundert", "MP 3D Engine") ; Erstes Mesh erstellen aus Schriftart Times 

; Entspricht FreeCatchFont
RemoveFontMemResourceEx_(fontid)

MP_PositionMesh (mesh1, -MP_MeshGetWidth(mesh1)/4 ,-MP_MeshGetHeight(mesh1)/2,-MP_MeshGetDepth(mesh1)/2) ; Mittelpunkt des Meshs erzeugen

If CreateImage(0, 255, 255) ; Etwas Farbe selber erzeugen 
   MP_CreateImageColored(0,0,RGB($FF,$FF,$00),RGB($FF,$FF,$FF),RGB($FF,$00,$00),RGB($00,$00,$FF)) ; 
   MP_EntitySetTexture (mesh1, MP_ImageToTexture(0)) 
   FreeImage(0) 
EndIf 

x.f=0 
y.f=0 
z.f=6 

While Not MP_KeyDown(#PB_Key_Escape) And Not WindowEvent() = #PB_Event_CloseWindow;

 ; nen bishen apielen und das Objekt drehen 
 If MP_KeyDown(#PB_Key_Left)=1 : x=x-1 : EndIf ;links Debug #PB_Key_Left 
 If MP_KeyDown(#PB_Key_Right)=1 : x=x+1 : EndIf ;rechts #PB_Key_Right 
 If MP_KeyDown(#PB_Key_Down)=1 : y=y-1 : EndIf ;Runter #PB_Key_Down 
 If MP_KeyDown(#PB_Key_Up)=1 : y=y+1 : EndIf ;rauf #PB_Key_Up 
 If MP_KeyDown(#PB_Key_Z)=1  : z=z-0.1 : EndIf ;y Vertauscht bei y-z bei deutscher tastatur 
 If MP_KeyDown(#PB_Key_A)=1  : z=z+0.1 : EndIf ;a #PB_Key_A 

 If mesh1 ; Objekt drehen 
     MP_PositionEntity (Mesh1,0,0,z) 
     MP_RotateEntity (Mesh1,x,y,0) 
 EndIf 

    MP_RenderWorld () 
    MP_Flip () 
Wend 

DataSection

  font:
     IncludeBinary "fonts/Zeichen Hundert.ttf"
  end_font:

EndDataSection

Gruß Michael
Working on - MP3D Engine -
Benutzeravatar
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

Re: MP3D Alpha 32

Beitrag von udg »

Hallo Michael,
der Font ist eingebunden.

eine andere Frage.
ist es möglich die MP_PlayV2M Funktion so zu nutzen dass:
wenn man einen v2m Song doppel-klickt, es dann automatisch das v2m Modul abspielt?
Der Player öffnet sich zwar aber abspielen tut es auf diese Weise noch nix.

v2m verknüpfen mit dem Player - per Registry Eintrag?

Evtl. hast Du einen Tipp?

danke dir.

neuester Stand des Players:
Direkt Download
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
mpz
Beiträge: 497
Registriert: 14.06.2005 15:53
Computerausstattung: Win 10 Pro, 16 GB Ram, Intel I5 CPU und TI1070 Grafikkarte, PB 5.73 / 6.00 beta4
Wohnort: Berlin, Tempelhof

Re: MP3D Alpha 32

Beitrag von mpz »

Hi udg,

hier mal ein paar Infos für Dich:

1) Dateiextensionen sind in der Registrierdatenbank hier zu finden:

Code: Alles auswählen

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
2) Offizielle Info von Microsoft
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

3)Ein PB Beispiel in der Winapi (Danke an rsbasic, geiles Tool) zum Thema registreinträge gefunden

Code: Alles auswählen

;Administratorrechte erforderlich

Define NewKey
Define KeyInfo
Define Pfad$

Pfad$ = "%windir%\System32\notepad.exe"
RegCreateKeyEx_(#HKEY_CLASSES_ROOT, "*\shell\notepadxyz\command", 0, 0, #REG_OPTION_NON_VOLATILE, #KEY_ALL_ACCESS, 0, @NewKey, @KeyInfo)
RegSetValueEx_(NewKey, "", 0, #REG_SZ, Pfad$, Len(Pfad$) + 1)
RegCloseKey_(NewKey)

MessageRequester("","Eintrag erstellt.",0)

RegDeleteKey_(#HKEY_CLASSES_ROOT, "*\shell\notepadxyz\command\")
RegDeleteKey_(#HKEY_CLASSES_ROOT, "*\shell\notepadxyz\")

MessageRequester("","Eintrag entfernt",0)
3) Wenn Du einen Übergabeparameter (hier z.B. Song.v2m) im Programm lesen willst muss Du z.B. folgende Zeile einfügen:

Code: Alles auswählen

Ergebnis$ = ProgramParameter()
MP_LoadV2M(Ergebnis$)
Ich hoffe das hilft.
Michael
Working on - MP3D Engine -
Benutzeravatar
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

Re: MP3D Alpha 32

Beitrag von udg »

FRAGE

wie kann ich ein simples StringGadget in einem 3d Fenster darstellen? ...sprich mit normalen PureBasic Befehl?
Ebenso einen normalen Buttongadget? --> flackern
Auszug:

Code: Alles auswählen

OpenWindow(0, 732, 301, 540, 540, "", #PB_Window_ScreenCentered | #PB_Window_BorderLess)
;-SET WINDOW ALWAYS ON TOP
  SetWindowPos_(WindowID(0),#HWND_TOPMOST,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE) 
StringGadget(1, 18, 310, 240, 20, "Test") 
 ;-HANDLE 3D SCREEN
  MP_ScreenToHandle(WindowID(0))
alles was ich mit normalen PureBasic Befehlen anzeigen lassen will, sei es Text oder auch dieses String Gadget, FLACKERT dann nur rum aber wird nicht korrekt dargestellt.

Wie muss ich das richtig angeben?

Danke für eine schnelle Hilfe
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
mpz
Beiträge: 497
Registriert: 14.06.2005 15:53
Computerausstattung: Win 10 Pro, 16 GB Ram, Intel I5 CPU und TI1070 Grafikkarte, PB 5.73 / 6.00 beta4
Wohnort: Berlin, Tempelhof

Re: MP3D Alpha 32

Beitrag von mpz »

Hi udg,

man kann keine Windows Gadgets in einem DX9/DX10/DX11 Screen benutzen. Hier muss man eigene grafische Gadget bauen indem man Sprites, MP3D Text o.ä. verwendet. Die andere Möglichkeit ist es Screen über Viewport zu verkleinern und dann dort die Gadgets zu verwenden.

Gruß Michael

Code: Alles auswählen

OpenWindow(0, 732, 301, 540, 540, "", #PB_Window_ScreenCentered | #PB_Window_BorderLess)
;-SET WINDOW ALWAYS ON TOP
  SetWindowPos_(WindowID(0),#HWND_TOPMOST,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE)
StringGadget(1, 18, 10, 240, 20, "Test")
ButtonGadget(2, 300, 10, 80, 20, "Drückmich!") 

;-HANDLE 3D SCREEN
MP_ScreenToHandle(WindowID(0))

camera=MP_CreateCamera(); 3d sachen, ist sonst langweilig
x = 0 : y = 40 : xw = 540 : yw = 510
MP_Viewport(x,y,xw,yw)
teapot = MP_CreateTeapot() 
MP_EntitySetZ (teapot ,6 )
light=MP_CreateLight(1)

Repeat
    Event = WindowEvent()
    
    If Event = #PB_Event_Gadget

      Select EventGadget()          
        Case 2 ; Test
          MessageRequester("Info", "Ja drück mich weiter", 0)
        EndSelect

    EndIf
    
    MP_TurnEntity (teapot,0.1,0.2,0.3)
    MP_RenderWorld () ; Hier gehts los
    MP_Flip () ;

  Until Event = #PB_Event_CloseWindow Or MP_KeyDown(#PB_Key_Escape)
Working on - MP3D Engine -
Antworten