| "Jeu de plateau": 1ere personne et scroll / zoom de la map | |
|
|
Auteur | Message |
---|
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: "Jeu de plateau": 1ere personne et scroll / zoom de la map Dim 17 Juin 2018 - 21:31 | |
| Bon alors je me lance:
Comme vous avez pu le voir (ou pas) sur le forum j'ai un projet de "jeu-de-plateau-mais-en-jeu-vidéo" et j'ai donc choisi de le faire sous AGS.
La première difficulté que je rencontre est qu'il faudrait spécifier à AGS, pour commencer, que ce n'est pas un point n click classique mais un jeu à la première personne, façon Myst (ou disons plutôt comme n'importe quel jeu de stratégie / wargame) où l'utilisateur aurait en face de lui une map avec des pions personnages à déplacer dessus. J'imagine (peut-être à tort) que le scroll est pas difficile à gérer ici ?... Le curseur souris, quand il arrive sur les bords, permet de scroller la map en haut, en bas, à gauche, ou à droite. Il me faudrait également un système de zoom avec la molette de souris.
Pour commencer donc, comment réaliser tout cela ?
En vous remerciant !! _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
Shai-la Ouvrière en Chef de la Grande Tasse Bleue
Nombre de messages : 6018
Age : 46
Localisation : Montpellier
Date d'inscription : 17/04/2006
| Sujet: Re: "Jeu de plateau": 1ere personne et scroll / zoom de la map Lun 18 Juin 2018 - 6:53 | |
| Pour la première personne ce n'est pas difficile, il suffit de créer le personnage principal avec un pixel transparent pour qu'il soit invisible En général quand je veux faire des scrolls en cinématique, j'utilise un personnage invisible comme perso principal, et la caméra le suit. Je le fais alors marcher vers le haut, le bas, la droite ou la gauche pour faire défiler l'écran. Ca doit être possible de programmer quelque chose pour faire ça à la souris : par exemple, si la souris est positionnée à partir d'un certain seuil X ou Y, mettre automatiquement le perso principal invisible aux coordonnées de la souris. Mais y'a sûrement moyen de faire plus propre Par contre le système de zoom sera plus difficile. Je pense que ça doit être possible avec un script, mais en zoomant tu auras de toutes façons du pixel... |
|
| |
Arlann Cliqueur Amateur
Nombre de messages : 286
Date d'inscription : 06/04/2016
| Sujet: Re: "Jeu de plateau": 1ere personne et scroll / zoom de la map Lun 18 Juin 2018 - 6:55 | |
| Une autre solution est de focaliser la vision sur le curseur de la souris. - Code:
-
function repeatedly_execute_always() { SetViewport(mouse.x, mouse.y); } Bon chance pour ton projet, il est très intéressant ! |
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: "Jeu de plateau": 1ere personne et scroll / zoom de la map Lun 18 Juin 2018 - 12:32 | |
| - Shai-la a écrit:
- Par contre le système de zoom sera plus difficile. Je pense que ça doit être possible avec un script, mais en zoomant tu auras de toutes façons du pixel...
Même si je choisis de mettre une image très très grande, pour qu'en zoom maximum ça fasse 1920 x 1200 ?? - Arlann a écrit:
- Une autre solution est de focaliser la vision sur le curseur de la souris.
- Code:
-
function repeatedly_execute_always() { SetViewport(mouse.x, mouse.y); } Bon chance pour ton projet, il est très intéressant ! Merci pour ton encouragement !... Et pour le code ! Le problème c'est que ça fait une paye que je n'ai plus utilisé AGS... J'suis un peu rouillé. Je le copie-colle dans une nouvelle page script ou une déjà existante ? (GlobalScript, Edit Header ou Edit Script) (Sachant que j'ai choisi Empty Game au début) _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
Arlann Cliqueur Amateur
Nombre de messages : 286
Date d'inscription : 06/04/2016
| Sujet: Re: "Jeu de plateau": 1ere personne et scroll / zoom de la map Lun 18 Juin 2018 - 13:48 | |
| Tu peux mettre la fonction dans n'importe quel script. Dans le global ou alors dans un nouveau script que tu appelles comme tu veux, ou même le mettre dans le script d'une room si ce comportement ne doit fonctionner que dans celle-ci.
Concernant le zoom, je pense qu'AGS ne permet pas de zoomer comme tu l'entends, il permet juste de modifier la taille des sprites. Il y a certainement une possibilité de bricoler quelque chose avec ça, mais cela risque d'être très compliqué à gérer pour ce type de jeu. Peut être que je me trompe mais je pense que tu devrais essayer de t'en passer, ou alors chercher un autre moteur qu'AGS pour ce genre d'effet.
Bon courage ! |
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: "Jeu de plateau": 1ere personne et scroll / zoom de la map Lun 18 Juin 2018 - 14:00 | |
| Aïe !! C'est hélas incontournable pour ce que je veux faire, à l'état actuel des choses (je suis en train de concevoir ma carte principale)... Et même si je change ma map, c'est toujours incontournable... Sinon sera vraiment très fastidieux pour le joueur: En effet un dézoom permettrait de voir ce qu'il y a sur la map en un petit coup d’œil, et pour les détails, qu'il se concentre sur ce qu'il y a à faire "localement", un zoom me paraît tout à fait indispensable.
J'suis dégouté. Je me faisais une joie de revenir sur AGS et re-fréquenter activement le forum de la tasse bleue.
Merci en tout cas, encore une fois, pour vos réponses et précisions !!
EDIT=> Quel moteur serait alors plus approprié pour ce genre de trucs ?? _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: "Jeu de plateau": 1ere personne et scroll / zoom de la map Lun 18 Juin 2018 - 14:04 | |
| En attendant je vais essayer de revoir mon mécanisme de jeu et revoir evidemment la représentation graphique de ma carte du monde... Bref trouver des solutions _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
Arlann Cliqueur Amateur
Nombre de messages : 286
Date d'inscription : 06/04/2016
| Sujet: Re: "Jeu de plateau": 1ere personne et scroll / zoom de la map Lun 18 Juin 2018 - 14:12 | |
| Je ne voulais pas te décourager non plus ! Tu peux peut-être envisager de générer une sprite en vue d'ensemble pour visualiser le plateau dans son intégralité, mais cela me parait très compliqué de garder l’interactivité du jeu (les hotspots, régions, objets) sur plusieurs niveaux de zoom. Encore une fois, peut être que je me trompe et qu'il existe d'autres solutions, attends d'avoir d'autres avis. |
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: "Jeu de plateau": 1ere personne et scroll / zoom de la map Lun 18 Juin 2018 - 14:27 | |
| - Arlann a écrit:
- mais cela me parait très compliqué de garder l’interactivité du jeu (les hotspots, régions, objets) sur plusieurs niveaux de zoom.
Hé oui c'est bien ce que j'avais compris. Mais je pense que ça va aller, je suis en train de chercher des solutions, et je pense pouvoir m'adapter... Et non tu ne m'as pas découragé t'inquiète ! Je savais que ce serait un passage obligé avec ce projet bizarre, et même pour le projet de faire un jeu tout court en fait... C'est juste que ça fait un bon moment que je cogite sur une représentation graphique suffisamment ergonomique et intuitive pour le joueur... Du coup jsuis obligé de tout revoir. Mais je vois les points positifs : ça me permettra de simplifier encore le bouzin et ce n'est pas un mal finalement. _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: "Jeu de plateau": 1ere personne et scroll / zoom de la map Lun 18 Juin 2018 - 15:40 | |
| Si tu tiens à pouvoir zoomer/dézoomer, une option serait d'avoir des niveaux discrets, par exemple : - Vue d'ensemble
- Vue intermédiaire
- Vue rapprochée
Le "truc" consisterait à créer autant de pièces que de niveaux de zoom, et s'assurer que tout événement se produit dans chaque pièce en parallèle (ce qui est faisable avec suffisamment d'organisation). C'est un peu fastidieux mais ça peut donner un résultat plutôt cool. _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: "Jeu de plateau": 1ere personne et scroll / zoom de la map Lun 18 Juin 2018 - 15:57 | |
| Oui c'est ce que je pensais faire au départ, quand Arlann m'a expliqué... Mais finalement je vais faire une seule vue. Comme tu dis, je pense que ce sera trop fastidieux... Surtout pour moi (qui ne sait finalement pas faire grand chose avec AGS mis à part les trucs de base). Bref, pour un projet débutant ça me paraît un peu compliqué.
J'ai donc repensé ma vue, mon interface et tutti quanti... De façon à l'adapter comme il se doit pour AGS.
Et ma foi je suis plutôt content du résultat... je le préfère même à mon premier jet donc pour moi y'a pas photo.
Merci encore. _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: "Jeu de plateau": 1ere personne et scroll / zoom de la map Lun 18 Juin 2018 - 20:04 | |
| En ce qui concerne le zoom ce qui me parait compliqué c'est surtout s'il y a des éléments "mobiles" sur la carte, dont il faudrait recalculer la position pour chaque niveau de zoom, ça peut vite être galère. On peut aussi imaginer, de manière plus simple, une mini-map où la carte apparaitrait dans son ensemble, et, par exemple, un carré rouge qui désignerait la position actuelle. Elle pourrait être soit affichée à la demande du joueur, soit apparaitre en permanence dans l'interface, en bas à droite, par exemple... Sur le scrolling : - Arlann a écrit:
- Une autre solution est de focaliser la vision sur le curseur de la souris.
- Code:
-
function repeatedly_execute_always() { SetViewport(mouse.x, mouse.y); } Je n'ai pas beaucoup eu recours à la fonction SetViewport, mais d'après ce qu'en dit l'aide en ligne, cela colle le coin gauche de l'écran aux coordonnées spécifiées. Donc en l'état si je ne m'abuse le curseur restera en permanence bloqué dans ce coin (sauf si on est dans le coin inférieur droit de la map) et la souris ne pourra être qu'exclusivement consacrée à déplacer la carte sur l'écran, ce qui n'est pas l'objectif. Je pense que pour faire ce que tu recherche il faudrait mieux définir des zones de l'écran (faisons simple dans un premier temps : disons les quatre bords) qui permettraient de se déplacer lorsqu'elles sont survolées. Pour le dire plus simplement : si je survole le bord droit, la carte se déplace vers la droite. Voici ce qu'on peut faire pour cela : - Code:
-
function repeatedly_execute(){ int ScrollGauche = 20; int ScrollDroite = (ScreenWidth - 20); int ScrollHaut = 20; int ScrollBas = (ScreenHeight - 20); //Les limites de positionnement du curseur sur les bords Gauche/Droite/Haut/Bas à partir desquelles on scrolle sur la carte. J'ai mis 20 mais tu peux changer cette valeur (plus la valeur est petite, plus il faut rapprocher le curseur du bord) int ViewPortX = GetViewPortX(); int ViewPortY = GetViewPortY(); //Les valeurs de scrolling X et Y que l'on va redéfinir bool ScrollActif = false; //Variable facultative mais qui permettra de ne pas redéfinir le scrolling inutilement pour éviter de ralentir le jeu le cas échéant if ((mouse.x < ScrollGauche) && (GetViewPortX > 0)){ //Si le curseur se trouve dans la zone prédéfinie à gauche et que le bord gauche de la carte n'a pas été atteint. ViewPortX--; //On diminue d'un cran la valeur du ViewPort pour scroller d'un cran vers la gauche ScrollActif = true; //On indique qu'il faudra mettre à jour le scrolling } else if ((mouse.x > ScrollDroite) && (GetViewPortX < (RoomWidth - ScreenWidth))){ ViewPortX++; ScrollActif = true; } if ((mouse.y < ScrollHaut) && (GetViewPortY >0)){ ViewPortY--; ScrollActif = true; } else if ((mouse.y > ScrollBas) && (GetViewPortY < (RoomHeight - ScreenHeight))){ ViewPortY++; ScrollActif = true; } if (ScrollActif) SetViewPort(ViewPortX, ViewPortY); //Si nécessaire, on met à jour le scrolling }
Je n'ai pas encore testé ce code, il reste probablement des petites erreurs. J'ai mis repeatedly_execute alors que @Arlann avait mis reapetedly_execute_always. Les deux options sont possibles, la différence sera que dans le second cas le code sera exécuté même s'il y a une fonction bloquante en cours, ce qui ne sera pas le cas dans le premier cas. À toi de choisir ce qui est préférable mais de toute façon ça n'a pas beaucoup d'importance à ce stade, tu pourras toujours changer si tu en ressens le besoin par la suite. Je te conseille de le mettre dans la fonction correspondante du GlobalScript pour le moment, ce sera plus simple vu qu'elle est déjà là par défaut. J'espère avoir été suffisamment clair dans mes explications mais n'hésite pas à me demander si besoin. _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: "Jeu de plateau": 1ere personne et scroll / zoom de la map Lun 18 Juin 2018 - 20:14 | |
| C'est très clair merci beaucoup !... Je garde ça sous le coude. _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
Arlann Cliqueur Amateur
Nombre de messages : 286
Date d'inscription : 06/04/2016
| Sujet: Re: "Jeu de plateau": 1ere personne et scroll / zoom de la map Lun 18 Juin 2018 - 21:18 | |
| - valoulef a écrit:
- Je n'ai pas beaucoup eu recours à la fonction SetViewport, mais d'après ce qu'en dit l'aide en ligne, cela colle le coin gauche de l'écran aux coordonnées spécifiées. Donc en l'état si je ne m'abuse le curseur restera en permanence bloqué dans ce coin (sauf si on est dans le coin inférieur droit de la map) et la souris ne pourra être qu'exclusivement consacrée à déplacer la carte sur l'écran, ce qui n'est pas l'objectif.
Tu as tout à fait raison, je me suis un peu emballé… Voici un code plus propre de ce que je pensais faire. - Code:
-
int sX, sY; int b = 50 ; // Définir ici la distance des bords de l'écran qui déclenche le scroll (en nombre de pixels) int v = 10 ; // Définir ici la vitesse du scroll (en nombre de pixel par cycle de jeu) function repeatedly_execute_always() { if (mouse.x < b ) sX-=v; if (mouse.x > System.ViewportWidth-b ) sX+=v; if (mouse.y > System.ViewportHeight-b ) sY+=v; if (mouse.y < b ) sY-=v; SetViewport(sX, sY); } |
|
| |
Contenu sponsorisé
| Sujet: Re: "Jeu de plateau": 1ere personne et scroll / zoom de la map | |
| |
|
| |
| "Jeu de plateau": 1ere personne et scroll / zoom de la map | |
|