Bilder vor Benutzer verbergen
Übersicht

FoxBetreff: Bilder vor Benutzer verbergen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hiho,
hab' im Forum gesucht, aber nichts gefunden. Ich habe im Grafik Ordner meines Spiels einige Hintergrundgrafiken, die im Programm mehr oder weniger 1 zu 1 geladen werden. Ein wesentlicher Teil der Motivation besteht darin, im Laufe des Spiels die Grafiken zu finden. Wenn der Spieler diese durch einen Klick in den Ordner "Grafiken" sofort alle übersehen kann, wäre das ziemlich schade. Habt ihr eine Idee, wie ich die Bilder vor dem User "verstecken" kann? Muss kein grandioser Schutzmechanismus sein, aber man soll halt nicht mit 3 Klicks alles einsehen können. Ich hatte spontan die Idee, die fertigen Grafiken in 8-16 Teilen zu "zerstückeln" und dann erst im Quellcode wieder zusammenzusetzen. Das würde aber wohl kaum zur Übersichtlichkeit des Sources beitragen und wäre darüber hinaus einiges an Aufwand. Dann kam ich auf die Idee, sämtlichen Grafikdateien unscheinbare Namen zu geben ("Fx1") und die Dateiendungen zu verunstalten ("Fx1.xx"), so dass keine direkte Verknüpfung zu einem Grafikprogramm besteht. Beim Programmstart würden zunächst alle Dateien wieder in ein Grafikformat umbenannt ("Fx1.xx > Fx1.png") und dann normal verarbeitet. Nach Beendigung des Programms benennt eine Funktion die Files dann wieder um. Aber auch das ist wohl einiges an Arbeit, außerdem weiß ich nicht, ob die Bilderinformationen den Prozess überstehen würden. Wie würdet ihr die Angelegenheit angehen? Danke für's Lesen und tiefe Sympathie für jeden Lösungsansatz im Voraus! ![]() - Fox |
||
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da gibt es viele Methoden. Eine relativ einfache, die du schon genannt hast, ist einfach die Dateinamen anders zu benennen. Wenn das noch nicht reicht, dann könnte man ja einen Packer nehmen, der dir alle Grafiken zu einem Archiv zusammenpackt. Müsste es hier irgendwo im Forum geben.
Ansonsten könnte man die Dateien noch verschlüsseln. dazu gibt es hier auch einige Beispiele. Folgendes habe ich mal selbst geschrieben. Es ist zwar relativ primitiv, aber es reicht um die Bilddateien für Grafikprogramme unleserlich zu machen. Obwohl ich das alles mehrfach getestet habe, würde ich aber trotzdem Sicherheitskopien machen, bevor du diese Funktionen benutzt, weil am Dateiende Prüfbytes angehängt werden. Dadurch wird das Bild aber nicht beschädigt oder verändert. Code: [AUSKLAPPEN] Start = MilliSecs() Crypt("Bild.jpg"): Print "File crypted " + (MilliSecs()-Start) + "ms" Start = MilliSecs() DeCrypt("Bild.jpg"): Print "File decrypted " + (MilliSecs()-Start) + "ms" WaitKey End ; --- Datei verschlüsseln --- Function Crypt(File$) Datei = OpenFile(File$) If Datei = 0 Then RuntimeError("Die zu verschlüsselnde Datei " + File$ + " wurde nicht gefunden.") SeekFile Datei, FileSize(File$)-2 Check = ReadShort(Datei) If Check = 47391 Then RuntimeError("Datei ist bereits verschlüsselt") SeekFile Datei, 0 For i = 0 To FileSize(File$) Wert = ReadInt(Datei) SeekFile Datei, FilePos(Datei)-4 WriteInt Datei, Wert + 9 * i SeekFile Datei, FilePos(Datei)+4 If Eof(Datei) Then Exit Next WriteShort Datei, 47391 CloseFile Datei End Function ; --- Datei verschlüsseln --- ; --- Datei entschlüsseln --- Function Decrypt(File$) Datei = OpenFile(File$) If Datei = 0 Then RuntimeError("Die zu entschlüsselnde Datei " + File$ + " wurde nicht gefunden.") SeekFile Datei, FileSize(File$)-2 Check = ReadShort(Datei) If Check <> 47391 Then RuntimeError("Datei ist nicht verschlüsselt") SeekFile Datei, 0 For i = 0 To FileSize(File$) Wert = ReadInt(Datei) SeekFile Datei, FilePos(Datei)-4 WriteInt Datei, Wert - 9 * i SeekFile Datei, FilePos(Datei)+4 If Eof(Datei) Then Exit Next WriteShort Datei, 0 CloseFile Datei End Function ; --- Datei entlüsseln --- |
||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
Fox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hiho,
mit .Jpg's und .Bmp's arbeitet das Ganze prima - nur leider nicht mit .Png's ... ![]() Zwar kann ich die Png-Files nach dem Entschlüsseln wieder in Grafikprogrammen laden, BB+ nimmt sie aber nicht mehr an; der Bildschirm bleibt schwarz. |
||
René Meyer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du kannst den Bilddateien z.B. die Endung MP3 geben; BB lädt sie trotzdem korrekt. | ||
www.blitzbasic.de | Das Buch zu Blitz Basic: www.schreibfabrik.de/txt/bbb |
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oder Terabit Datapacker:
http://www.blitzcoder.com/cgi-...30126.html |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Code: [AUSKLAPPEN] Graphics 640, 480, 32 SetBuffer BackBuffer() Crypt( "bild.png" ) image = LoadImage( "bild.png" ) While Not KeyHit( 1 ) DrawImage( image, 10, 10 ) Flip Cls Wend End Function Crypt( fileName$ ) file = OpenFile( fileName$ ) If ( file = 0 ) Then RuntimeError( "Datei nicht gefunden" ) While Not Eof( file ) val = ReadByte( file ) val = val Xor $ff SeekFile( file, FilePos( file ) - 1 ) WriteByte( file, val ) SeekFile( file, FilePos( file ) + 1 ) Wend CloseFile file End Function Versuchs so, da klappts auch mit den PNG Dateien. Is zwar ne ganz billige Methode, aber evtl. hilfts dir ja. ![]() Im Prinzip reichts aber schon, wen du das/die ersten Byte/s abänderst. grüße |
||
http://bl4ckd0g.funpic.de |
Fox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi David,
deine Methode klappt auch mit .Png's problemlos. Danke! ![]() Kann mir jemand erklären, warum Travis' Funktion das Dateiformat hinterher nicht mehr ausgeben kann, wohingegen es bei David ohne Murren funktioniert? |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kleinere Bilder lese ich als Data ein und benutzte die dann aus dem Code herraus, da kommt dann nichts auf die Festplatte
allerdings sind die exes dann ziemlich groß, die ich dann aber mit upx packe |
||
[BB2D | BB3D | BB+]
|
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Travis schreibt noch einen Shortwert hinten an die Datei ran, könnte mir vorstellen das da irgendwas nicht richtig läuft. Wohingegen das eigendlich kein Problem ergeben dürfte... ![]() grüße |
||
http://bl4ckd0g.funpic.de |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group