Seite 2 von 3

Verfasst: 25.07.2009 20:10
von Little John
DrFalo hat geschrieben:
Schongewusst99 hat geschrieben:Jetzt hab ichs begriffen!
Jede ID kann ich mit ner Constant gleich setzten wenn ich vorher eine definiere.
Dabei brauchst du aber nicht = 1 , = 2 , = 3, etc. dahintersetzen, die werden automatisch nummeriert, wie es ts gezeigt hat. Was für ne Nummer die bekommen kannst du glatt vergessen, du hast ja die Konstante dafür. :wink:
Braucht er nicht nur nicht, sollte er sogar nicht, da das -- außer in einzelnen begründeten Ausnahmefällen -- den Nutzen von Enumeration ad absurdum führt (von der Lesbarkeit gar nicht zu reden).

Gruß, Little John

Verfasst: 25.07.2009 20:26
von Schongewusst99
Und weg sind sie^^.

Verfasst: 25.07.2009 20:34
von ts-soft
Schongewusst99 hat geschrieben:Und weg sind sie^^.
Vernünftig einrücken, Images auch enummerieren und dann wirds langsam:

Code: Alles auswählen

;--Start--;
IncludeFile "database.pb"
;--Globales--;
Global Inhalt.s
;------------------------------
;----Aufzählungen Constants----;
;--Windows--;
Enumeration
  #Window_Startseite
EndEnumeration
;--Gadgets--;
Enumeration
  #Image_0
  #Image_1
  #Frame_0
  #Gadget_Inhalt
EndEnumeration
;--Images--;
Enumeration 
  #imgCover
  #imgUSK
EndEnumeration
;------------------------------
;--Plugins--;
UseJPEGImageDecoder()
;------------------------------
;--Images Fangen--;
CatchImage(#imgCover, ?Image0)
CatchImage(#imgUSK, ?Image1)
;------------------------------
;--ImagePfade--;
;-USK18
DataSection
  Image1:
  IncludeBinary "..\338.jpg"
EndDataSection
;-Cover
DataSection
  Image0:
  IncludeBinary "..\farcry2.jpg"
EndDataSection
;------------------------------
;------------------------------
;------------------------------
;MEIN FENSTER--;
If OpenWindow(#Window_Startseite, 0, 0, 800, 800, "Gamez", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) = 0
EndIf
ImageGadget(#Image_0, 10, 10, 520, 700, ImageID(#imgCover))
ImageGadget(#Image_1, 620, 270, 80, 80, ImageID(#imgUSK))
Frame3DGadget(#Frame_0, 535, 5, 255, 250, "Game Content")
TextGadget(#Gadget_Inhalt, 540, 20, 245, 250, farcry2\gamecontent)
Repeat
  EventID = WaitWindowEvent()
  If EventID = #PB_Event_CloseWindow
    Quit = 1
  EndIf
Until Quit = 1
;------------------------------
;------------------------------
;------------------------------
:wink:

Verfasst: 25.07.2009 22:23
von Schongewusst99
@ts-soft
Hm ja gut danke, hätt ich auch selbst gemacht. Jetzt darf ich mich wieder umorientieren was die einrückung betrifft. Aber das is nicht das Problem denk ich. DANKE.

@topic
Aber eine Sache steht noch aus. Die Bilder sind noch nicht dynamisch, denn IncludeBinary läßt keine Strings zu. Was mach ich da am besten?

Und ich habe etwas gegoogelt:
http://purebasic.fr/german/viewtopic.ph ... c8bcf82f4c
Dort wird in erster Linie von einem Absatz geredet. Aber könnte mir das auch helfen?

Verfasst: 25.07.2009 22:35
von ts-soft
Schongewusst99 hat geschrieben: @topic
Aber eine Sache steht noch aus. Die Bilder sind noch nicht dynamisch, denn IncludeBinary läßt keine Strings zu. Was mach ich da am besten?
Kannste mal bitte erklären, was Du mit dynamisch meinst?
LoadImage?

Verfasst: 25.07.2009 22:45
von Schongewusst99
Mit dynamisch meine ich nichts anderes als Das fenster bleibt aber auf eine Aktion ändert sich der Inhalt.
Ich habe z.B. eine Structure angelegt in der ich für farcry2 den Imagepfad für die USK abspeicher. diesen möchte ich aber verändern.
ich könnte jetzt z.B. nicht den Code so schreiben:

Code: Alles auswählen

DataSection
  Image1:
  IncludeBinary farcry2\usk
EndDataSection
Allerdings wäre das hilfreich.
Damit ich nicht für jedes Game was ich einfügen möchte eine neue Page proggen muss. Für den GameContent hab ich das denke ich ganz flott geschafft.

Ich such noch mal gründlich nach der schon "funktionierenden" Oberfläche.

Verfasst: 25.07.2009 22:50
von jojo1541
Wieso für jedes Game eine neues Fenster proggen?
Ändere doch einfach den Inhalt der Gadgets mit SetGadgetAttribute() und SetGadgetText()...

Verfasst: 25.07.2009 22:54
von Kaeru Gaman
und die eigentlichen Daten wie die Bilder , Texte und Informationen solltest du in einer Datenbank ablegen,
oder in einer selbstgemachten Tabelle und die in eine LinkedList laden.

die dynamischen Daten sollten auf Platte sein und zur Laufzeit geladen werden.

IncludeBinary ist nur für Content, den du direkt innerhalb der EXE mitliefern willst, wie zum Beispiel die Männeken in nem Game,
und selbst dann ist es nur eine Alternative, auch dort kann man zur Laufzeit laden.

Verfasst: 25.07.2009 22:58
von Schongewusst99
@volti,
ebend NICHT immer wieder ein neues Fenster.
Aber dein Lösungsvorschlag klingt interessant. Kannst du den evtl. noch etwas erläutern?

@Kaeru Gaman
in meinem First Post update ich meinen code mitlerweile hab ich auch mich daran versucht!

Verfasst: 25.07.2009 23:06
von jojo1541
Ich habe auch nie behauptet, dass man ein neues Fenster öffnen muss. <)

Du kannst den Inhalt von Gadgets ändern(siehe PB-Hilfe zu den einzelnen Gadgets). Das geht mit den Befehlen SetGadgetAttribute() und SetGadgetText(). So veränderst du immer nur den Inhalt der Gadgets, den du vorher irgendwo gespeichert hast(Am besten wie Kaeru sagte in einer Datenbank) und musst nicht für jedes Spiel das Fenster neu proggen. :wink: