99 Seconds
Hallo
Nochmal was zum DirectX9 Subsystem. Ich habe das gestern noch etwas genauer getestet.
Die Programminterne FPS Anzeige fällt auf bis zu 40 Frames mit dem Subsystem. Mit den
(ist es DX7?) vorherigen Einstellungen bleibt es bei 60, wie gewünscht. Unter XP sieht
der Rahmen des Fensters in beiden Fällen gleich aus. Ich muss gestehen, ich kenne mich
mit diesem ganzen "Klickibunti" Kram auch nicht so aus. Könnte mich da jemand vielleicht
mal aufklären? (Und was hat das mit dem XP Skin Support auf sich?)
Ich möchte eigentlich nicht unterschiedlich compilierte Programme im Archiv haben.
Vielen Dank schonmal im Vorraus
Thomas
Nochmal was zum DirectX9 Subsystem. Ich habe das gestern noch etwas genauer getestet.
Die Programminterne FPS Anzeige fällt auf bis zu 40 Frames mit dem Subsystem. Mit den
(ist es DX7?) vorherigen Einstellungen bleibt es bei 60, wie gewünscht. Unter XP sieht
der Rahmen des Fensters in beiden Fällen gleich aus. Ich muss gestehen, ich kenne mich
mit diesem ganzen "Klickibunti" Kram auch nicht so aus. Könnte mich da jemand vielleicht
mal aufklären? (Und was hat das mit dem XP Skin Support auf sich?)
Ich möchte eigentlich nicht unterschiedlich compilierte Programme im Archiv haben.
Vielen Dank schonmal im Vorraus
Thomas
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
DX9 ist vor allem bei UseBuffer() und StartDrawing(ScreenOutput()) langsamer.
hier liegt es also möglicher weise an der Textausgabe.
Eine Umstellung auf eine SpriteFont würde da wahrscheinlich Abhilfe schaffen.
das ist ja aber grundsätzlich sowieso schöner für solche Games...
aber zu viele sorgen würde ich mir da nicht machen, eine FpS von 40 ist doch ausreichend.
hier liegt es also möglicher weise an der Textausgabe.
Eine Umstellung auf eine SpriteFont würde da wahrscheinlich Abhilfe schaffen.
das ist ja aber grundsätzlich sowieso schöner für solche Games...
aber zu viele sorgen würde ich mir da nicht machen, eine FpS von 40 ist doch ausreichend.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
*Kopfkratz*
Nur damit ich das nun richtig verstehe:
>Schön wäre es nur wenn du das DirectX9 Subsystem verwendest,
>da viele es hassen ... den Klassik Skin bekommen.
So wie ich das nun verstehe, würde es doch ausreichen in den Compileroptions den
XP Skin Support zu aktivieren. Dafür muss doch nicht das DX9 Subsystem bemüht werden.
Damit würde der Rahmen des Fensters doch auf jedem System so dargestellt wie gewünscht,
oder doch nicht?
Nur damit ich das nun richtig verstehe:
>Schön wäre es nur wenn du das DirectX9 Subsystem verwendest,
>da viele es hassen ... den Klassik Skin bekommen.
So wie ich das nun verstehe, würde es doch ausreichen in den Compileroptions den
XP Skin Support zu aktivieren. Dafür muss doch nicht das DX9 Subsystem bemüht werden.
Damit würde der Rahmen des Fensters doch auf jedem System so dargestellt wie gewünscht,
oder doch nicht?
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
du verstehst das schon richtig.
der XP-Skin Support hat nix mit DX z tun.
ABER
auf Vista schaltet sich Aero automatisch ab, wenn man ein Fenster mit DX7-Inhalt öffnet.
( Wixta, Ähro ... boah klingt das alles (G))
da die meisten User kaum in der Lage sind, die Unfähigkeit ihres Betriebssystems zu begreifen,
und schlicht dem Anwendungsprogrammierer die Schuld geben,
solltest du wohl einfach beides aktivieren, DX9 und XP-Skin.
btw...
mit XP-Skin-Support wird eine komplett andere Lib für die Fensterdarstellung und auch einiges vom Handling verwendet,
es ergeben sich also teilweise auch merkbare Unterschiede in der Funktionalität.
Am besten grundsätzlich XP-Skin Support einschalten.
der XP-Skin Support hat nix mit DX z tun.
ABER
auf Vista schaltet sich Aero automatisch ab, wenn man ein Fenster mit DX7-Inhalt öffnet.
( Wixta, Ähro ... boah klingt das alles (G))
da die meisten User kaum in der Lage sind, die Unfähigkeit ihres Betriebssystems zu begreifen,
und schlicht dem Anwendungsprogrammierer die Schuld geben,
solltest du wohl einfach beides aktivieren, DX9 und XP-Skin.
btw...
mit XP-Skin-Support wird eine komplett andere Lib für die Fensterdarstellung und auch einiges vom Handling verwendet,
es ergeben sich also teilweise auch merkbare Unterschiede in der Funktionalität.
Am besten grundsätzlich XP-Skin Support einschalten.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Öch söö, man kann mehrere angeben.ts-soft hat geschrieben:combobox mit multiselectKurzer hat geschrieben: Das hätte Fred vielleicht besser mit einer Combobox lösen können, die schon mit den richtigen Einträgen gefüllt wird.


"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Man kann sogar eigene erstellenKurzer hat geschrieben:Öch söö, man kann mehrere angeben.![]()

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Und nochmal Windowed-Screen:
Irgendwie muss da bei PB oder dem Compiler doch der Wurm drin stecken.
Ich weiss ja nicht wieviele gestern die beiden Test-compiles ausprobiert haben, die X360
auf Windows 7 erfolgreich laufen hatte. Da ich hier nur auf XP und SE testen kann habe
ich bei den nun eintrudelnden Fehlermeldungen aus anderen Bereichen keine Möglichkeiten
dem Fehler auf die Schliche zu kommen. Hier läuft nämlich jedes der 3 compiles auf beiden
Systemen problemlos. Selbst mit XP Skin support und DX9 Subsystem auf 98SE.
Es kann doch nicht daran liegen, nur weil ein windowed-screen geöffnet wird, das einige
PCs dadurch abstürzen. Ich kann hier (ohne das programm zu beenden) ständig von windowed
zu DX-Screen wechseln ohne mucken. Hat jemand eine Idee oder ähnliches erlebt?
Irgendwie muss da bei PB oder dem Compiler doch der Wurm drin stecken.
Ich weiss ja nicht wieviele gestern die beiden Test-compiles ausprobiert haben, die X360
auf Windows 7 erfolgreich laufen hatte. Da ich hier nur auf XP und SE testen kann habe
ich bei den nun eintrudelnden Fehlermeldungen aus anderen Bereichen keine Möglichkeiten
dem Fehler auf die Schliche zu kommen. Hier läuft nämlich jedes der 3 compiles auf beiden
Systemen problemlos. Selbst mit XP Skin support und DX9 Subsystem auf 98SE.
Es kann doch nicht daran liegen, nur weil ein windowed-screen geöffnet wird, das einige
PCs dadurch abstürzen. Ich kann hier (ohne das programm zu beenden) ständig von windowed
zu DX-Screen wechseln ohne mucken. Hat jemand eine Idee oder ähnliches erlebt?
Hallo,
hier mal ´n kleiner Code, mit dem die Steine durchnummeriert werden
können... Auch als Basis anderer SeinLayout-Manipulationen zu benutzten
In der vorliegenden Form wird dieses SteinLayout generiert:

Neben besserer Unterscheidbarkeit ist nun auch die Meldung "Joker wg.
99 Steine der Farbe x" verdeutlicht... Und es ist eben als Basis eigener
Manipulationen zu gebrauchen:
(muss im SubDir ....\99Seconds\Graphics gestartet werden!!!
Orginal-Layout bleibt als "Blicks1.BMP.BAK" erhalten)
Gruss SiBru
hier mal ´n kleiner Code, mit dem die Steine durchnummeriert werden
können... Auch als Basis anderer SeinLayout-Manipulationen zu benutzten
In der vorliegenden Form wird dieses SteinLayout generiert:

Neben besserer Unterscheidbarkeit ist nun auch die Meldung "Joker wg.
99 Steine der Farbe x" verdeutlicht... Und es ist eben als Basis eigener
Manipulationen zu gebrauchen:
(muss im SubDir ....\99Seconds\Graphics gestartet werden!!!
Orginal-Layout bleibt als "Blicks1.BMP.BAK" erhalten)
Code: Alles auswählen
#Prg_Name = "99SecStones"
#Prg_Vers = "9604a" ;<-- set by PB_VersUpd Vers 9301a
#PB_Vers = "4.30"
#Size = 48 ;SteinGröße [Pixels]
#Steine = 29 ;Anz. definierter Steine
#FontSize = 16 ;Schriftgröße
#FontName = "VAGRounded BT" ;Schriftart
#WhiteStones = " 14 19 23 28 29 13 4 " ;Nr´s der dunklen Steine (bekommen weisse Schrift)
#Mode = 0
; XIncludeFile "C:\AlsterSoft\PB4.20\Module\FileBackup.PBI"
; XIncludeFile "C:\AlsterSoft\PB4.20\Module\ImageTransparenz.PBI"
; XIncludeFile "C:\AlsterSoft\PB4.20\Module\Win_Upd.PBI"
Procedure DrawTextOutline(DC, x, y, Text$, FontID, Farbe)
Protected oldspacing = GetTextCharacterExtra_(DC)
Protected Text = @Text$
Protected Lang = Len(Text$)
Protected Brush = CreateSolidBrush_(Farbe)
SelectObject_(DC, FontID)
SetTextCharacterExtra_(DC, 2) ;Zeichen-Abstand
SetBkMode_(DC, #TRANSPARENT)
SetTextAlign_(DC, #TA_NOUPDATECP)
BeginPath_(DC)
TextOut_(DC, x, y, Text, Lang)
EndPath_(DC)
SelectObject_(DC, Brush)
StrokeAndFillPath_(DC)
DeleteObject_(Brush)
SetTextCharacterExtra_(DC, oldspacing)
EndProcedure
;- Init´s
ImgFile$ = "Blocks1.bmp"
BaseImgID = LoadImage(0, ImgFile$)
; Win_MinB=500
; Win_MinT=180
; Win_Upd(1) ;get WinPos & -Size(last Session)
Win_X = 10 : Win_Y = 10 : Win_B = 500 : Win_T = 180
WinNr = 1
WinID = OpenWindow(WinNr, Win_X, Win_Y, Win_B, Win_T, "Steine 99Sec´s", #PB_Window_SystemMenu|#PB_Window_SizeGadget)
;CreateGadgetList(WinID) <-- updated by PB_SrcUpd Vers. 9303b
UseGadgetList(WinID)
ImageGadget(1, 0, 0, ImageWidth(0), ImageHeight(0), BaseImgID)
FontID = LoadFont(1, #FontName, #FontSize, #PB_Font_Bold)
;- erstmal die Ziffern-Bildchen aufbauen
For Stein = 1 To #Steine
Stein$ = Str(Stein) ;Stein-Beschriftung
CreateImage(Stein, #Size, #Size)
DC = StartDrawing(ImageOutput(Stein))
Box(0, 0, #Size, #Size, #White) ;Schrift-Hintergrund einweissen
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID)
xPos = (#Size - TextWidth(Stein$)) / 2 ;Schrift horizontal mittig auf´n Stein
yPos = (#Size - TextHeight(Stein$)) / 2 - 2 ;auch vertikal
DrawTextOutline(DC, xPos , yPos, Stein$, FontID, #White) ;Schrift nur als Zeichen-Umrahmung
;DrawText(xPos ,yPos,Stein$,#Black,#White) ;volle Schrift
StopDrawing()
StartDrawing(WindowOutput(WinNr))
DrawImage(ImageID(Stein), x, y)
x + #Size ;Position-Pointer auf nächsten Stein setzen
If x>#Size * 9
x = 0
y + #Size
EndIf
Next
; Repeat
; Event = WaitWindowEvent()
; Until Event = #PB_Event_CloseWindow
;- Ziffern-Bildchen in´s HauptBild einschmelzen
x = 0 : y = 0 ;Position-Pointer reseten
StartDrawing(ImageOutput(0))
For Stein = 1 To #Steine
Stein$ = " " + Str(Stein) + " " ;für Suche in #WhiteStones
For x2 = 1 To #Size ;aktuellen Stein Pixelweise durchgehen:
For y2 = 1 To #Size
StartDrawing(ImageOutput(Stein))
Farbe = Point(x2 , y2) ;Schrift-Farbe holen
StopDrawing()
If Farbe = #Black ;nur schwarze Ziffern-Pixels umsetzen
StartDrawing(ImageOutput(0))
Farbe = Point(x + x2 , y + y2) ;Farbe Pixel HauptBild holen
Select #Mode
Case 1
r = 255 - Red(Farbe)
g = 255 - Green(Farbe)
b = 255 - Blue(Farbe)
Farbe = RGB(r, g, b)
Case 2
r = Red(Farbe) - 128 : If r<0 : r + 255 : EndIf
g = Red(Farbe) - 128 : If g<0 : g + 255 : EndIf
b = Red(Farbe) - 128 : If b<0 : b + 255 : EndIf
Farbe = RGB(r, g, b)
Case 3
;Farbe = ImageTransparenz(Farbe, #Black)
Default
If FindString(#WhiteStones, Stein$, 1)
Farbe = #White
Else
Farbe = #Black
EndIf
EndSelect
Plot(x + x2, y + y2, Farbe)
StopDrawing()
EndIf
Next
Next
BaseImgID = ImageID(0)
SetGadgetState(1, BaseImgID) ;aktuellen Stein darstellen
x + #Size ;Position-Pointer auf nächsten Stein setzen
If x>#Size * 9
x = 0
y + #Size
EndIf
Next
RenameFile(ImgFile$, ImgFile$ + ".BAK") ;Sicherheits-Kopie aufbauen
SaveImage(0, ImgFile$)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
;Win_Upd(9) ;store WinPos & -Size
; updated durch Prg. PB_SrcUpd Vers. 9303b am 07.06.2009, 13:49h

