HexaScrabble Linux

Codes specifiques à Linux
Avatar de l’utilisateur
SPH
Messages : 4721
Inscription : mer. 09/nov./2005 9:53

HexaScrabble Linux

Message par SPH »

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:
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Re: HexaScrabble Linux

Message par Guimauve »

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 : Tout sélectionner

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 : Tout sélectionner

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
Avatar de l’utilisateur
SPH
Messages : 4721
Inscription : mer. 09/nov./2005 9:53

Re: HexaScrabble Linux

Message par SPH »

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:
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Re: HexaScrabble Linux

Message par Guimauve »

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
Avatar de l’utilisateur
SPH
Messages : 4721
Inscription : mer. 09/nov./2005 9:53

Re: HexaScrabble Linux

Message par SPH »

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)
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Re: HexaScrabble Linux

Message par Guimauve »

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 : Tout sélectionner

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 : Tout sélectionner

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
Dernière modification par Guimauve le dim. 08/janv./2012 20:40, modifié 1 fois.
Avatar de l’utilisateur
SPH
Messages : 4721
Inscription : mer. 09/nov./2005 9:53

Re: HexaScrabble Linux

Message par SPH »

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 ?
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Re: HexaScrabble Linux

Message par Guimauve »

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/viewtop ... 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/viewtop ... 23&t=39581

A+
Guimauve
Dernière modification par Guimauve le dim. 08/janv./2012 20:39, modifié 1 fois.
Avatar de l’utilisateur
SPH
Messages : 4721
Inscription : mer. 09/nov./2005 9:53

Re: HexaScrabble Linux

Message par SPH »

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...
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Avatar de l’utilisateur
SPH
Messages : 4721
Inscription : mer. 09/nov./2005 9:53

Re: HexaScrabble Linux

Message par SPH »

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...
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Répondre