PureBasic

Forums PureBasic
Nous sommes le Jeu 14/Nov/2019 10:46

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 10 messages ] 
Auteur Message
 Sujet du message: HexaScrabble Linux
MessagePosté: Dim 08/Jan/2012 9:55 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4067
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 ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: HexaScrabble Linux
MessagePosté: Dim 08/Jan/2012 16:19 
Hors ligne

Inscription: Mer 11/Fév/2004 0:32
Messages: 1015
Localisation: Québec, Canada
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


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: HexaScrabble Linux
MessagePosté: Dim 08/Jan/2012 16:58 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4067
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 ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: HexaScrabble Linux
MessagePosté: Dim 08/Jan/2012 17:38 
Hors ligne

Inscription: Mer 11/Fév/2004 0:32
Messages: 1015
Localisation: Québec, Canada
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


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: HexaScrabble Linux
MessagePosté: Dim 08/Jan/2012 18:46 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4067
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 ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: HexaScrabble Linux
MessagePosté: Dim 08/Jan/2012 19:14 
Hors ligne

Inscription: Mer 11/Fév/2004 0:32
Messages: 1015
Localisation: Québec, Canada
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


Dernière édition par Guimauve le Dim 08/Jan/2012 20:40, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: HexaScrabble Linux
MessagePosté: Dim 08/Jan/2012 19:33 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4067
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 ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: HexaScrabble Linux
MessagePosté: Dim 08/Jan/2012 19:38 
Hors ligne

Inscription: Mer 11/Fév/2004 0:32
Messages: 1015
Localisation: Québec, Canada
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


Dernière édition par Guimauve le Dim 08/Jan/2012 20:39, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: HexaScrabble Linux
MessagePosté: Dim 08/Jan/2012 20:23 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4067
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 ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: HexaScrabble Linux
MessagePosté: Mar 10/Jan/2012 11:32 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4067
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 ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 10 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye