Closed Folch closed 9 years ago
Crearàs una nova escena, o faràs un dialeg que surti quan cliquis al play del jugador? @Folch
A mi més igual, però crec que al final l'artista @xavierfebrer volia que creés una nova escena
Que n'opines @xavierfebrer?
@Folch @xaviml us sembla bé que us prepari tres mètodes associats al PjPrincipal (per exemple modeEasy(), modeMedium(), modeHard()) o preferiu un mètode i que li passis Easy,Medium,Hard on el seu valor és 0,1,2 respectivament? (allà posaré els sets corresponent a vidamaxima, regeneracio per segon, ...)? Quina forma et seria més còmode @Folch ?
modeEasy(),modeMedium() i modeHard() m'agrada més perque em sembla menys marrano @aniskhoury
A on guardareu el paràmetre global de la dificultat seleccionada pel jugador?
Per que això afecta alhora d'establir els atributs dels NPCs en funció de la dificultat.
En realitat podriem nomes canviar la vida del personatge principal i deixar igual les aranyes o fer mes fortes les aranyes i deixar igual el personatge principal, no caldria fer les 2 coses i si fem la primera amb les funcions de l' @aniskhoury n'hi ha prou. @Mithrandir0x
Acabo de fer les funcions que em demanaves @Folch , però lo que diu en @Mithrandir0x cal tenir-ho en consideració, en el meu cas és fàcil perque n'hi ha prou en canviar els atributs perque crides els mètodes des del Pj Principal (i internament, tinc una variable, que és la dificultat, però sens dubte seria millor llegir tots del mateix lloc el nivell de dificultat). A mode d'exemple:
public void modeEasy(){
this.setMAXHP (2000);
this.setMAXMP (2000);
this.setHP (2000);
this.setMP (2000);
this.setFOR (0);
this.setDMG (200);
this.setRegenHP (10);
this.setRegenMP (20);
nivellDif = 1;
}
public void modeMedium(){
this.setMAXHP (1500);
this.setMAXMP (1500);
this.setHP (1500);
this.setMP (1500);
this.setFOR (0);
this.setDMG (150);
this.setRegenHP (5);
this.setRegenMP (10);
nivellDif = 2;
}
El nivell de dificultat és útil doncs l'uso en altres llocs (mira la issue #222 ), de totes maneres ara ja l'agafo quan em crides el mètode, però si el @Mithrandir0x la necessita, ho canviaria, així ho agafem tots del mateix lloc i no repliquem informació.
Com vulgueu @Mithrandir0x i @aniskhoury , en tot cas si voleu que modifiqui una variable global per a que tothom hi pugui accedir on la poso?
Mmm, poder seria interessant posar-ho al GameFlow, @Folch , després de garantir que s'hagi creat el PjPrincipal i les coses necessàries que en faran us del nivell de dificultat
Algo així us va bé?:
public class Gameflow : MonoBehaviour {
...
private const int EASY = 0;
private const int MEDIUM = 1;
private const int HARD = 2;
private int difficulty;
public void setDifficulty(int diff){
this.difficulty = diff;
}
...
}
Així jo només cridare al setDifficulty(0),setDifficulty(1) o setDifficulty(2). @aniskhoury
@Folch així està bé! Que et sembla si li posem un tag que sigui GameFlow i nosaltres fem un getDifficulty()?
No creieu que hauriem d'unificar tots els canvis que respecten a la dificultat en un fitxer? @Folch, @Mithrandir0x, @aniskhoury
Teniu en compte l'ordre d'execució dels scripts: http://docs.unity3d.com/Manual/ExecutionOrder.html
És preferible que aquest paràmetre s'hagi definit prèviament per PlayerPrefs
, donat que és un objecte estàtic dedicat a declarar configuracions globals de l'estat del joc, en comptes de fer-ho dins un objecte que no sabem quan començarà a viure.
Per evitar possibles race conditions per que el valor no s'ha declarat encara, el que podem fer és declarar l'accés a la dificultat com a static
:
public static const int EASY = 0;
public static const int MEDIUM = 1;
public static const int HARD = 2;
public static int GetDifficulty() {
String difficulty = PlayerPrefs.GetString("difficulty");
difficulty = difficulty != null && difficulty.Length == 1 ? difficulty : MEDIUM;
return System.Int32.parse(difficulty);
}
public static void SetDifficulty(int mode) {
mode = mode < EASY ? EASY : mode;
mode = mode > HARD ? HARD : mode:
PlayerPrefs.SetString("difficulty", "" + mode);
}
public static bool IsDifficulty(int mode) {
mode = mode < EASY ? EASY : mode;
mode = mode > HARD ? HARD : mode:
return GetDifficulty() == mode;
}
I prèviament, en una altra escena s'haurà seleccionat la dificultat, i es configura la dificultat fent això en alguna part del codi:
Gameflow.SetDifficulty(Gameflow.HARD);
@Mithrandir0x així ho faig doncs. @aniskhoury tu fes servir el get aquest del Gameflow i ja està. I el mateix pels NPC's @JordiRQ
Perfecte @Folch. Quan integrem, ajustarem els valors per ajustar-ho tot a unes dificultats coherents. Tanco issue.
A l'escena on s'escull el personatge es podrà escollir la dificultat, segons la dificultat que s'esculli (easy,normal,hard) sonarà un audio o un altre, el personatge tindrà més o menys vida (o se li recuperarà més a poc a poc) i els enemics seran pitjors o millors.
1 hora estimada
Condició de finalització: