PureBasic
https://www.purebasic.fr/french/

HexaScrabble Linux
https://www.purebasic.fr/french/viewtopic.php?f=14&t=12482
Page 1 sur 1

Auteur:  SPH [ Dim 08/Jan/2012 9:55 ]
Sujet du message:  HexaScrabble Linux

Haaa tiens, je me disais que j'allais mettre HexaScraable sur linux. Ou plutot non, VOUS allez le mettre car je ne sais pas le faire.
Mon code n'a rien de secret, le voici : http://xmas.free.fr/hexascrabble_12.pb
Les datas sont ici : http://xmas.free.fr/HexaScrabble.zip

Je pense que mon code est facilement adaptable. Mais si vous reperez une instruction non compatible, dites le moi et je verrais ce que je peux faire.

A VOUS de jouer (prendre la voix d'Eric CARTMAN) :lol: :lol:

Auteur:  Guimauve [ Dim 08/Jan/2012 16:19 ]
Sujet du message:  Re: HexaScrabble Linux

Bonjour SPH,

J'ai commencer à regarder ton code et déjà je vois quelques soucis.

1. Les séparateurs dans les chemins d'accès aux différents répertoires n'est pas le même sous Windows que sous Linux et MacOS. Sous Windows c'est "\" alors que sous Linux et Mac c'est "/". Pour démêler le tout, un petit :
Code:
CompilerSelect #PB_Compiler_OS
   
  CompilerCase #PB_OS_Windows
    #PathSep = "\"
    ; Autres éléments spécifique à Windows
    ; ...
   
  CompilerCase #PB_OS_Linux
    #PathSep = "/"
    ; Autres éléments spécifique à Linux
    ; ...
   
  CompilerCase #PB_OS_MacOS
    #PathSep = "/"
    ; Autres éléments spécifique à MacOS
    ; ...
   
CompilerEndSelect


2. Dans soucis de simplification, l'ouverture du screen devrait ressembler à ceci :
Code:
ExamineDesktops()
scr_w = DesktopWidth(0)
scr_h = DesktopHeight(0)

If OpenScreen(scr_w, scr_h, 32, "HexaScrabble") = 0
  MessageRequester("Erreur", "OpenScreen impossible")
  End
EndIf


3. Si on souhaite faire une vraie installation sous Linux, le répertoire où les joueurs sauvegardent leurs pointages ne peut se trouver dans le répertoire du programme. Il doit être placé dans le "/home/nom_utilisateur/" idéalement dans un sous répertoire ".hexascrabble/".

Sous Windows il est préférable de sauvegarder les pointages dans le répertoire "Documents and Setting", je ne sais plus trop comment il s'appelle, puisque normalement on sauvegarde uniquement les données qui se trouvent là, les programmes on les réinstallent. Il y a donc un risque de perte de résultats.

Pour le reste j'étudie encore.

A+
Guimauve

Auteur:  SPH [ Dim 08/Jan/2012 16:58 ]
Sujet du message:  Re: HexaScrabble Linux

Merci.

Pour la resolution, elle doit etre entre 1024/x et 1388/y. Donc, pas de resolution comme le bureau.
Pour la sauvegarde, j'ai pas compris. Mais elle est possible comme je l'ai prevu je pense.

Je t'ecoute pour tes futurs remarques. :idea:

Auteur:  Guimauve [ Dim 08/Jan/2012 17:38 ]
Sujet du message:  Re: HexaScrabble Linux

Re-Bonjour,

Pour le problème de sauvegarde, si ton programme se trouve dans le répertoire de l'utilisateur, il n'y a pas de problème ton programme pourra lire et écrire les Scores dans le répertoire où il se trouve. En revanche si tu fais une installation propre pour que tout les utilisateurs puisse jouer avec "HexaScrabble" et bien :

Les fichiers ressources du jeu doivent être installées dans le répertoire : "/usr/share/games/hexascrabble/"
Le fichier exécutable ("hexascrable") du jeu doit être installer dans le répertoire : "/usr/game/"
Le fichier "hexascrabble.desktop" doit être installer dans le répertoire : "/usr/share/applications/"
L'icône de présentation "hexascrabble.png" (128X128) doit être installer dans le répertoire : "/usr/share/pixmaps/"

Bien entendu ces répertoires sont "Lecture seule", ce qui implique que les "Scores" doivent être sauvegardés dans un autre répertoire, par exemple : "/home/nom_utilisateur/.hexascrable/"

Pour ce qui est de la résolution il est préférable de prendre celle du bureau, de mettre le fond noir puis centrer tout l'affichage. L'idée est d'éviter d'afficher une résolution 4:3 sur un écran 16:9. Si non l'image devient déformée et l'expérience n'est pas agréable. Je suis confronté à ce problème avec le jeu "MX vs ATV Unleashed" qui lui est conçu pour un écran 4:3 alors que mon écran est un 16:10. Résultat il me faut émuler un bureau virtuel avec WINE à une résolution du jeu pour que l'affichage soit correct et c'est très énervant.

Lien sur les résolutions d'écran Standard

A+
Guimauve

Auteur:  SPH [ Dim 08/Jan/2012 18:46 ]
Sujet du message:  Re: HexaScrabble Linux

Guimauve a écrit:
Re-Bonjour,

Pour le problème de sauvegarde, si ton programme se trouve dans le répertoire de l'utilisateur, il n'y a pas de problème ton programme pourra lire et écrire les Scores dans le répertoire où il se trouve. En revanche si tu fais une installation propre pour que tout les utilisateurs puisse jouer avec "HexaScrabble" et bien ...

Fais comme tu le sent

Pour les/ et \, tu peux facilement les corriger.

Pour la resolution, tu vas voir le big probleme si tu prend la resolution du bureau (essaye et tu verras)

Auteur:  Guimauve [ Dim 08/Jan/2012 19:14 ]
Sujet du message:  Re: HexaScrabble Linux

Re-Bonjour,

Les changements effectuer :

1. Remplacer "GetTickCount_()" par "ElapsedMilliseconds()" --> [Il y en a environ 50]
2. Présentement le code original ne compile même pas, j'ai un "Accès Mémoire Invalide" sur la commande "DisplayTranslucentSprite()". Pour le faire fonctionner, j'ai dû faire
Code:
If StartSpecialFX()
  DisplayTranslucentSprite(1,(scr_w-SpriteWidth(1)) >> 1,(scr_h - SpriteHeight(1)) >> 1, i)
  StopSpecialFX()
EndIf

À noter que je fais afficher le Sprite centré à l'écran.

Problèmes :

1. LoadModule(1, "zik" + #PathSep +"0.mod") ne fonctionne pas, sous Linux, les extensions de fichier sont sensible à la casse. ".mod" est différent de ".MOD". Un petit coup de :
Code:
CompilerSelect #PB_Compiler_OS
      
   CompilerCase #PB_OS_Windows
      #PathSep = "\"
      ; Autres éléments spécifique à Windows
      ; ...
      
   CompilerCase #PB_OS_Linux
      #PathSep = "/"
      ; Autres éléments spécifique à Linux
      ; ...
      
   CompilerCase #PB_OS_MacOS
      #PathSep = "/"
      ; Autres éléments spécifique à MacOS
      ; ...
      
CompilerEndSelect

If ExamineDirectory(0, "zik", "*.MOD") <> 0
 
  While NextDirectoryEntry(0) <> 0
   
    FileName.s = DirectoryEntryName(0)
   
    If Left(FileName, 1) <> "."
      FilePart.s = StringField(FileName, 1, ".")
      Extension.s = LCase(StringField(FileName, 2, "."))
      RenameFile("zik" + #PathSep + FileName, "zik" + #PathSep + FilePart + "." + Extension)
    EndIf
   
  Wend
 
EndIf

Corrige le problème.
2. Le curseur ne bouge pas, c'est un bogue qui remonte à plusieurs mois sous Linux et il n'a pas été corrigé.

A+
Guimauve

Auteur:  SPH [ Dim 08/Jan/2012 19:33 ]
Sujet du message:  Re: HexaScrabble Linux

Guimauve a écrit:
2. Le curseur ne bouge pas, c'est un bogue qui remonte à plusieurs mois sous Linux et il n'a pas été corrigé.

Un bug qui sera corrigé quand ?

Auteur:  Guimauve [ Dim 08/Jan/2012 19:38 ]
Sujet du message:  Re: HexaScrabble Linux

Faudrait voir avec Fred, cela fait plus d'un an que le bogue à été rapporté et malheureusement faire un "bump" sur un bogue déjà rapporté c'est bon pour se faire taper sur les doigts. La solution alternative est de passer par la librairie SDL pour la gestion du clavier et de la souris.

Édit 1 : J'ai rapporté le bogue le 17 août 2010 sur le forum Anglais http://www.purebasic.fr/english/viewtopic.php?f=23&t=43293
Édit 2 : Les premières fois où les problèmes avec la Souris en mode Screen Sous LInux ont été rapporté date du 4 décembre 2008 http://www.purebasic.fr/english/viewtopic.php?f=23&t=39581

A+
Guimauve

Auteur:  SPH [ Dim 08/Jan/2012 20:23 ]
Sujet du message:  Re: HexaScrabble Linux

Ok j'avais donc bien ccompris (helas) que le bug viens de PB et que ca n'a pas ete corrigé.
Bon bin, c'est pas grave, je vais me contenter de la version windows...

Auteur:  SPH [ Mar 10/Jan/2012 11:32 ]
Sujet du message:  Re: HexaScrabble Linux

Guimauve, je ne sais pas si tu as le temps mais apparement, une version linux de mon jeu est un gros +
Puis je t'elire compileur linux de mon jeu ?
Pour cela, ca te dirais de passer par la library SDL ??

Enfin, je dis ca mais c'est toi qui decide...

Page 1 sur 1 Heures au format UTC + 1 heure
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/