Éditeur de livres jeux, besoin de conseils

Programmation d'applications complexes
Avatar de l’utilisateur
DjPoke
Messages : 121
Inscription : mar. 02/nov./2010 13:53
Localisation : Corte, Corse, France
Contact :

Éditeur de livres jeux, besoin de conseils

Message par DjPoke »

Bonjour à tous,

Je suis en train de développer un éditeur/player de livres dont vous êtes le héros.
J'aurais besoin de votre aide pour me donner des conseils et des renseignements, s.v.p.

Vous pouvez télécharger le logiciel (libre) en cours de développement ici : http://www.retro-bruno.com/Gamebook_Edit.zip
Pour l'instant, je travaille sur le player.

Voici à quoi il devrait ressembler si il marche aussi chez vous :
Image

1) J'aimerais savoir si les fonts correspondent chez vous entre le logiciel et le screenshot ?
2) J'aimerais savoir si le fait de cliquer gauche sur les pages pour les tourner, et cliquer droit pour activer le menu est assez intuitif ?

Merci d'avance

ps: Le logiciel nécessite une résolution légèrement supérieure à 1024x768. Je sais que pour ceux qui sont en 1024x768 ou moins, c'est bête, mais j'ai pensé que le logiciel étant libre, s'il aboutit, quelqu'un pourra faire sa propre version modifiée pour des résolutions plus basses.
Dernière modification par DjPoke le mar. 22/juil./2014 7:54, modifié 1 fois.
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Éditeur de livres jeux, besoin de conseils

Message par microdevweb »

Bonsoir DjPoke,

Même apparence chez moi Windows 7 64.

Pour le côté intuitif tu pourrais, changer le curseur ou faire apparaitre un instant en alpha une icône lorsque la souris s'approche d'une extrémité de la page. Par contre pour le menu, si je ne l'avais pas lu dans ton message je n'aurais pas deviner qu'il fallait faire un clic droit. Un petit message genre toast comme android pour le signaler ne serait pas mal.

Bonne continuation :wink:
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
DjPoke
Messages : 121
Inscription : mar. 02/nov./2010 13:53
Localisation : Corte, Corse, France
Contact :

Re: Éditeur de livres jeux, besoin de conseils

Message par DjPoke »

Merci pour tes précieux conseils. Je met à jour le programme d'ici à demain et j'édite ce post.

EDIT:
Voilà, c'est fait, encore merci. :)

Cela semble fonctionner plutôt bien, non ?
Avatar de l’utilisateur
raven
Messages : 222
Inscription : jeu. 06/janv./2005 15:45

Re: Éditeur de livres jeux, besoin de conseils

Message par raven »

bonsoir djpoke,

Chez moi l'apparence de la font est la même que celle du screenshot w7 64.
pour le menu,j'ai bien aimé le clic droit,le coté avoir tout a porté de clic souris ( c'a se dit c'a :mrgreen: )

les bruitages sont agréable aussi :)

je verrais bien aussi pour la présentation,une couverture genre vieux grimoire qui s'ouvre quand on lance une partie.
le choix du plein écran (aime bien moi le plein écran).

bonne continuation
Pb5.24 Lts/5.31 Windows 7 64 nvidia 560 ti E8500 8g ram
Avatar de l’utilisateur
DjPoke
Messages : 121
Inscription : mar. 02/nov./2010 13:53
Localisation : Corte, Corse, France
Contact :

Re: Éditeur de livres jeux, besoin de conseils

Message par DjPoke »

Bonsoir raven, et merci.

L'idée du grimoire est géniale.

Pour le plein écran, comme je travaille avec un canvas, ça risque de me donner du boulot pour tout changer dans le moteur du logiciel mais je dois pouvoir enlever le bord et le titre de la fenêtre, puis étirer l'ensemble sur tout l'écran. Je vais essayer.

EDIT:
Pour la couverture du grimoire, c'est fait. Par contre, je n'arrive pas à simuler un plein écran, ou en tout cas pas sans d'énormes ralentissement.
Lemaquis
Messages : 271
Inscription : mer. 25/déc./2013 7:34
Localisation : la corse

Re: Éditeur de livres jeux, besoin de conseils

Message par Lemaquis »

Bonjour

Je trouve cela démodé , c'etait bon il ya 30 ans mais de nos jours on veux du visuel et pas du texte .
LeMaquis
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Éditeur de livres jeux, besoin de conseils

Message par microdevweb »

Humm pas mal la nouvelle version

Bonne continuation
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Éditeur de livres jeux, besoin de conseils

Message par djes »

Je vois bien ce soft sur une tablette, pour lire les histoires comme avec un vrai livre, à ses enfants. Avec tout le côté pratique de l'ordinateur, saut de page, recherche, sommaire intégré, et pourquoi pas, énigmes et conquêtes interactives ? Très bonne idée ! :)

Et surtout : que cela reste simple, comme un vrai livre !!!!! Marre de ces interfaces avec des boutons partout où rien n'est intuitif !
Dernière modification par djes le jeu. 17/juil./2014 10:08, modifié 1 fois.
Avatar de l’utilisateur
DjPoke
Messages : 121
Inscription : mar. 02/nov./2010 13:53
Localisation : Corte, Corse, France
Contact :

Re: Éditeur de livres jeux, besoin de conseils

Message par DjPoke »

@microdevweb : Merci :)

@Lemaquis : Je sais que les livres jeux ne plaisent pas à tout le monde, mais personnellement, c'est en rejouant à ceux-ci sur ipad que m'est venue cette idée. Je me suis rendu compte que 25 ans après, ces livres ont toujours du charisme. Je me suis fait plaisir en y jouant, en les redécouvrant avec une conscience plus subtile. Et c'est pour cela que je vais essayer de réussir mon logiciel.
Si le projet aboutit, le système de jeu sera personnalisé. Il y aura dans l'éditeur, par exemple, un bestiaire avec générateur de monstre à intégrer dans l'aventure. Ceci dans le but de ne pas copier sur les autres systèmes de livres jeux et de permettre à toute personne aimant écrire de faire ses propres livres avec facilité et plaisir.
Toute idée allant dans le sens de la construction et de l'amélioration est la bienvenue.

@djes : Les goûts et les couleurs...

Prochaine étape : L'intégration d'images. :)
Mesa
Messages : 1093
Inscription : mer. 14/sept./2011 16:59

Re: Éditeur de livres jeux, besoin de conseils

Message par Mesa »

Fonctionne bien avec Pb x86 sur Xp 32b mais les numéros de pages en bas ne s'affichent pas en entier peut-être parce que j'ai un affichage avec un dpi de 120.

Je ne comprends pas pourquoi tu n'utilises pas les fonctions curseur du canva : #PB_Canvas_Cursor... et la fonction #PB_Canvas_Image (SetGadgetAttribute()) aurait pu t'aider, je pense.

Sinon, même visuel.

Excellent :D

[Edit]
Pour gérer le DPI tu peux utiliser les codes ci dessous (Windows seulement)

Code : Tout sélectionner

Procedure.i Gui_GetDesktopDpiX()
  Protected hdc.i
  Protected hDpi.i
  hdc = GetDC_(GetDesktopWindow_())
  If hdc
    hDpi = GetDeviceCaps_(hdc, #LOGPIXELSX)
    ReleaseDC_(GetDesktopWindow_(), hdc)
  EndIf
  ProcedureReturn hDpi
EndProcedure

; Procedure.i Gui_GetDesktopDpiY()
;   Protected hdc.i
;   Protected hDpi.i
;   hdc = GetDC_(GetDesktopWindow_())
;   If hdc
;     hDpi = GetDeviceCaps_(hdc, #LOGPIXELSY)
;     ReleaseDC_(GetDesktopWindow_(), hdc)
;   EndIf
;   ProcedureReturn hDpi
; EndProcedure

Global TauxDeReduction.f
TauxDeReduction = 96/Gui_GetDesktopDpiX()

TaillePolice=18
FontID1 = LoadFont(1, "Arial", Round(TaillePolice*ScreenDpi, #PB_Round_Nearest))

Debug "Pour prendre en compte les zooms d'écran (DPI) :"
Debug "Il faudra réduire toutes les tailles de toutes les polices de : " + Str(Round(TauxDeReduction*100, #PB_Round_Nearest)) + " %"
Debug "Le DPI est de : " + Str(Gui_GetDesktopDpiX()) ; en ppp point par pouce
; Debug Gui_GetDesktopDpiY()
Debug "Avec un DPI standard (96), un taille de police 18 doit être réduite à " + Str(Round(TaillePolice*TauxDeReduction, #PB_Round_Nearest))

Code : Tout sélectionner

;Placed in the Public Domain by Roger Hågensen.

#PB_Compiler_Exe=#True ;This does not exist (yet?)

;http://msdn.microsoft.com/en-us/library/dd464660%28VS.85%29.aspx
Global _ScaleDPI_X_.f=1.0,_ScaleDPI_Y_.f=1.0
#DefaultDPIX=96.0 ;Different platforms might have different default DPI, Windows is 96 DPI.
#DefaultDPIY=96.0
Procedure InitScaleDPI() ;Windows 5.0 or higher needed for minimum functionality of this procedure.
Protected dpiaware.l=#False,dc.i,lpx.i,lpy.i,dll.i,*SetProcessDPIAware,*IsProcessDPIAware,ncm.NONCLIENTMETRICS,font$,font.i
Protected fontsize
;This part is Windows 6.x+ only (Vista etc.) and must be done before we use devcaps.
;http://msdn.microsoft.com/en-us/library/dd464660%28VS.85%29.aspx#declaring_dpi_awareness
;You really should use the DPI aware manifest instead of SetProcessDPIAware() when possible.
;On Windows 2000 and XP the manifest has no effect and set dpi aware is not available,
;however Devicecaps still returns usefull info that can be used.
;Note! If the dpi aware manifest is missing on Vista and Win7 then the OS will lie on devicecaps and will autoscale the entire app window.
CompilerIf #PB_Compiler_Exe ;Only use this in exes, as dlls inherit DPI from the calling process.
  ;If the exe or the calling exe in case of this being a dll is allready dpi aware (like through a manifest),
  ;then we skip using the the set dpi aware function, a dll should never use the set function, but it should check if the process id dpi aware
  ;and apply the proper modifiers where appropriate obviously.
  dll=OpenLibrary(#PB_Any,"user32.dll")
  If dll
    ;Vista: Determines whether the current process is dots per inch (dpi) aware such that it adjusts the sizes of UI elements to compensate for the dpi setting. renvoie booleen
     *IsProcessDPIAware=GetFunction(dll,"IsProcessDPIAware")
   If *IsProcessDPIAware
    dpiaware=CallFunctionFast(*IsProcessDPIAware)
   EndIf
   If Not dpiaware
     ;vista:Sets the current process as dots per inch (dpi) aware.
      *SetProcessDPIAware=GetFunction(dll,"SetProcessDPIAware")
      If *SetProcessDPIAware
       CallFunctionFast(*SetProcessDPIAware)
      EndIf
   EndIf
  EndIf
CompilerEndIf
dc=GetDC_(#Null)
If dc
    lpx=GetDeviceCaps_(dc,#LOGPIXELSX);lpx.f ?
    lpy=GetDeviceCaps_(dc,#LOGPIXELSY);lpy.f ?
    If lpx>0
    _ScaleDPI_X_=lpx/#DefaultDPIX
   EndIf
    If lpy>0
    _ScaleDPI_Y_=lpy/#DefaultDPIY
   EndIf
    ReleaseDC_(#Null,dc)
EndIf
;Get the system font for message boxes etc.
;We default to a size of 9, which is also the Vista and Win7 default size.
;The OS will automatically (Vista and Win7 at least) scale the font per the current user's DPI setting.
ncm\cbSize=SizeOf(NONCLIENTMETRICS)
If SystemParametersInfo_(#SPI_GETNONCLIENTMETRICS,SizeOf(NONCLIENTMETRICS),ncm,#Null)
  font$=PeekS(@ncm\lfMessageFont\lfFaceName)
  ;Debug font$
  os=OSVersion()
    If os= #PB_OS_Windows_Vista Or os=#PB_OS_Windows_Server_2008 Or os=#PB_OS_Windows_7; Or
      ;#PB_OS_Windows_Future
      
      ;http://msdn.microsoft.com/en-us/library/windows/desktop/aa511282.aspx
      
      ;fontname=Segoe UI
      fontsize=9
    Else
      ;fontname=Tahoma
      fontsize=8
      ;Debug "windows Xp"
    EndIf
    ;MS Sans Serif size 8 on Windows 95, Windows 98, Windows Millennium Edition, and Windows NT 4.0.
      font=LoadFont(#PB_Any,font$,fontsize,#PB_Font_HighQuality)
      If font
       SetGadgetFont(#PB_Default,FontID(font))
      EndIf
EndIf
EndProcedure
InitScaleDPI()
Macro ScaleDPIx(x)
(x)*_ScaleDPI_X_
EndMacro
Macro ScaleDPIy(y)
(y)*_ScaleDPI_Y_
EndMacro

;The Gadget example from PureBasic manual.

#WindowWidth  = 390
#WindowHeight = 350

If OpenWindow(0, ScaleDPIx(100), ScaleDPIy(200), ScaleDPIx(#WindowWidth), ScaleDPIy(#WindowHeight), "PureBasic - Gadget Demonstration", #PB_Window_MinimizeGadget)

  Top = 10
  GadgetHeight = 24

  Frame3DGadget(#PB_Any, ScaleDPIx(10), ScaleDPIy(Top), ScaleDPIx(370), ScaleDPIy(290), "Player...") : Top+20

  StringGadget(0, ScaleDPIx(20), ScaleDPIy(Top), ScaleDPIx(200), ScaleDPIy(GadgetHeight), "")
  ButtonGadget(1, ScaleDPIx(223), ScaleDPIy(Top),  ScaleDPIx(72), ScaleDPIy(GadgetHeight), "Play")
  ButtonGadget(2, ScaleDPIx(295), ScaleDPIy(Top),  ScaleDPIx(72), ScaleDPIy(GadgetHeight), "Stop")  : Top+35
  DisableGadget(2,1)

  GadgetToolTip(1,"Play the current song")

  PanelGadget(3, ScaleDPIx(20), ScaleDPIy(Top), ScaleDPIx(#WindowWidth-50), ScaleDPIy(#WindowHeight-Top-60))
    AddGadgetItem(3, 0, "MP3 PlayList")
      ListViewGadget(4, ScaleDPIx(6), ScaleDPIy(10), ScaleDPIx(230), ScaleDPIy(148))

      For k=0 To 30
        AddGadgetItem(4, -1, "Music Song n° "+Str(k))
      Next

      ButtonGadget(5,  ScaleDPIx(250), ScaleDPIy(10), ScaleDPIx(80), ScaleDPIy(GadgetHeight), "Add")
      ButtonGadget(6,  ScaleDPIx(250), ScaleDPIy(38), ScaleDPIx(80), ScaleDPIy(GadgetHeight), "Remove")
      ButtonGadget(7,  ScaleDPIx(250), ScaleDPIy(66), ScaleDPIx(80), ScaleDPIy(GadgetHeight), "Select")
      GadgetToolTip(7, "Select the current song")

      TrackBarGadget(17, ScaleDPIx(10), ScaleDPIy(168), ScaleDPIx(310), ScaleDPIy(25), 0, 100)

    AddGadgetItem(3, 1, "Options")
      Top = 10
      CheckBoxGadget(10, ScaleDPIx(10), ScaleDPIy(Top), ScaleDPIx(250), ScaleDPIy(GadgetHeight), "Enable low-pass filter") : Top+30
      CheckBoxGadget(11, ScaleDPIx(10), ScaleDPIy(Top), ScaleDPIx(250), ScaleDPIy(GadgetHeight), "Enable visual plug-in")  : Top+30
      ComboBoxGadget(12, ScaleDPIx(10), ScaleDPIy(Top), ScaleDPIx(250), ScaleDPIy(21)) : Top+30
        AddGadgetItem(12, -1, "FireWorks")
        AddGadgetItem(12, -1, "OpenGL spectrum")
        AddGadgetItem(12, -1, "Bump bass")
      SetGadgetState(12,0)
      DisableGadget(12,1)

      OptionGadget(13, ScaleDPIx(10), ScaleDPIy(Top), ScaleDPIx(80), ScaleDPIy(GadgetHeight), "640*480") : Top+20
      OptionGadget(14, ScaleDPIx(10), ScaleDPIy(Top), ScaleDPIx(80), ScaleDPIy(GadgetHeight), "800*600") : Top+20
      OptionGadget(15, ScaleDPIx(10), ScaleDPIy(Top), ScaleDPIx(80), ScaleDPIy(GadgetHeight), "1024*768")
      SetGadgetState(13, 1)

      ButtonGadget(16, ScaleDPIx(150), ScaleDPIy(Top), ScaleDPIx(80), ScaleDPIy(GadgetHeight), "Info")
  CloseGadgetList()

  TextGadget  (9, ScaleDPIx(10), ScaleDPIy(#WindowHeight-30), ScaleDPIx(250), ScaleDPIy(24), "PureBasic - Gadget demonstration")
  ButtonGadget(8, ScaleDPIx(#WindowWidth-100), ScaleDPIy(#WindowHeight-36), ScaleDPIx(80), ScaleDPIy(24), "Quit")

  SetGadgetState(3, 0)

  Repeat
    EventID = WaitWindowEvent()

    If EventID = #PB_Event_Gadget

      Select EventGadget()
        Case 0
          If EventType() = #PB_EventType_ReturnKey
            MessageRequester("Info", "Return key pressed", 0)
            SetActiveGadget(0)
          EndIf

        Case 1 ; Play
          DisableGadget(2,0)  ; Enable the 'Stop' gadget
          DisableGadget(1,1)  ; Disable the 'Play' Gadget

        Case 2 ; Stop
          DisableGadget(1,0)  ; Enable the 'Play' gadget
          DisableGadget(2,1)  ; Disable the 'Stop' Gadget

        Case 4
          If EventType() = 2
            SetGadgetText(0, GetGadgetText(4)) ; Get the current item from the ListView..
          EndIf

        Case 5 ; Add
          AddGadgetItem(4, -1, "New Item Added...")

        Case 6 ; Remove
          RemoveGadgetItem(4, GetGadgetState(4)) ; Remove the current element of the ListView

        Case 7 ; Select
          SetGadgetText(0, GetGadgetText(4)) ; Get the current item from the ListView..

        Case 8 ; Quit...
          EventID = #PB_Event_CloseWindow

        Case 11 ; Enable PlugIn..
          DisableGadget(12, 1-GetGadgetState(11))

        Case 16 ;
          If GetGadgetState(13) : Result$ = GetGadgetText(13) : EndIf
          If GetGadgetState(14) : Result$ = GetGadgetText(14) : EndIf
          If GetGadgetState(15) : Result$ = GetGadgetText(15) : EndIf

          MessageRequester("Info", "Selected screen mode: "+Result$, 0)

        Case 17
          SetGadgetText(0, Str(GetGadgetState(17)))

      EndSelect

    EndIf

  Until EventID = #PB_Event_CloseWindow

EndIf

End
M.
Dernière modification par Mesa le jeu. 17/juil./2014 9:59, modifié 2 fois.
Avatar de l’utilisateur
DjPoke
Messages : 121
Inscription : mar. 02/nov./2010 13:53
Localisation : Corte, Corse, France
Contact :

Re: Éditeur de livres jeux, besoin de conseils

Message par DjPoke »

Pour les images, c'est fait.
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Éditeur de livres jeux, besoin de conseils

Message par Ar-S »

J'ai toujours aimé les livres dont vous êtes le héros, tout comme les jeux de rôles et les soirées enquêtes..

Remarques
- Tu devrais faire 2 petites images de l'angle bas droit de tes pages de droite. Il te suffirait d'en avoir une cornée et une normale. Tu afficherais la cornée lorsque la souris passe dessus.
- C'est vrai que tu devrais utiliser les options de curseurs canvas, actuellement entre la fleche et la croix ça a tendance à scintiller un peu.
- Menu pour baisser/couper la musique qui passe d'agréable à soulante au bout d'un moment.
- Effet papier brulé sur la feuille de perso ok mais sur les pages du livre, bof

En tout cas c'est très sympa, bonne continuation.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
DjPoke
Messages : 121
Inscription : mar. 02/nov./2010 13:53
Localisation : Corte, Corse, France
Contact :

Re: Éditeur de livres jeux, besoin de conseils

Message par DjPoke »

Merci pour tes conseils Ar-S, je vais y réfléchir.

EDIT:

Bonjour Mesa, j'ai bien peur de ne pas comprendre grand chose à la gestion des DPI. Du coup, à ce sujet, je ne sais que faire.

EDIT2:
@Mesa: J'ai réussi à adapter le premier code pour les DPI mais je ne comprend pas l'utilité du second, pourrais-tu m'expliquer s'il te plait ?
@Ar-S: Je ne comprend pas bien ce que je peux faire avec #pb_canvas_cursor, pourrais-tu m'expliquer ce que je peux faire, s'il te plait ?
Avatar de l’utilisateur
Huitbit
Messages : 939
Inscription : jeu. 08/déc./2005 5:19
Localisation : Guadeloupe

Re: Éditeur de livres jeux, besoin de conseils

Message par Huitbit »

Lemaquis a écrit :Bonjour

Je trouve cela démodé , c'etait bon il ya 30 ans mais de nos jours on veux du visuel et pas du texte .
:?: 8O
Il ne faut pas généraliser ! Chacun ses goûts !
Compare un livre et son adaptation au cinéma :mrgreen: , le travail fait par ton imagination est souvent mieux que le film (il ne faut pas généraliser (bis))!


J'en ai fait un de 30 pages (version papier) pour mon fils de 6 ans, il a adoré !
J'ai même commencé à réfléchir à un éditeur en PureBasic car c'est chaud à faire sur du papier (il y en a sur le net mais pas à mon goût)
Exemple advelh : http://litteraction.fr/presentation/liv ... /logiciels

En tout cas DjPoke bonne continuation !

Hasta la vista !
Dernière modification par Huitbit le jeu. 17/juil./2014 16:25, modifié 2 fois.
Elevé au MSX !
Avatar de l’utilisateur
DjPoke
Messages : 121
Inscription : mar. 02/nov./2010 13:53
Localisation : Corte, Corse, France
Contact :

Re: Éditeur de livres jeux, besoin de conseils

Message par DjPoke »

Merci Huitbit :)

EDIT: @Mesa, le projet fonctionne maintenant jusqu'au 1024x768.
Il s'appelle maintenant "Gamebook_Edit". J'ai trouvé ce nom plus approprié.
Dernière modification par DjPoke le mar. 22/juil./2014 7:55, modifié 1 fois.
Répondre