Ves al contingut principal

Entrades

S'estan mostrant les entrades d'aquesta data: juny, 2014

TDDs a Unity(IV)

I per últim, ara que les obligacions familiars m'han donat un respir (tinc al menut dormint al meu costat), li posarem una interfície gràfica al nostre joc. Com ja sabeu he triat Unity 3D, per què m'encanta, i accepta el meu llenguatge de programació preferit (C#) per a l'scripting. El primer que he fet és crear uns apassionants gràfics amb el meu supertalent i el... mspaint!!! Per no avorrir-vos, vos pose un exemple:











Com podreu suposar, he creat una imatge per cada "vida", com el típic joc del penjat, així només s'ha de carregar en cada moment la imatge corresponent al nombre de vides (es podria fer més difícil, composant, animant... però el disseny no m'agrada, és molt avorrit i tediós i valdria més l'esperat que l'escurada).

Ara vos pose els objectes que he posat:



Si mirem la imatge tenim: 1 Sprite, Vides que es on anem posant la imatge del penjat segons les vides5 3DText (TextMesh):Paraula: La paraula que hem d'encertar, les lletres que enc…

TDDs a Unity(III)

Bo, seguint amb el joc del penjat, ara necessitarem alguna font de dades de les paraules. La forma més fàcil que he pensat és llegir d'un arxiu que continga un text (aleatori, lliure...) i extraiga una paraula, és a dir,

Indique l'arxiudemane una paraula entre min i max lletres (ens permetrà configurar nivell de dificultat)si després d'un determinat nombre d'intents no la trobe retorne "fail" (alguna cosa debia de fer)
Per tant només he trobat dos TDDs reals (altres com arxiu no existent... no els he contemplat, la veritat):
TestFailWord()TestWordBetwenLimits()
Analitzem el codi del primer test:
 [TestMethod]         public void TestFailWord()         {             WordExtractorClass W = new WordExtractorClass(@"C:\Users\Vicent\Desktop\prova.txt", 100,200);             W.getNewWord();             Assert.AreEqual(W.CurrentWord, "fail");         }
Demanem de l'arxiu una paraula entre 100 i 200 lletres (suposem que no existeix) i comprovem que la …

TDDs a Unity (II)

Bo, doncs com ja comentava intentarem crear un joc simple del penjat. Les regles són simple:

Es tria una paraulaEs tenen 6 vides (cap, braços, cos, cames)La paraula ix inicialment substituida cada lletra per un caràcter '_'Es pot elegir entre resodre i endivinar una lletraSi resols i encertes guanyesSi resols i no encertes perds una vidaSi endivines una lletra se substituix el caràcter '_' per la lletra corresponent en la posició pertinentSi no encertes la lletra perds una vida

Comencem a programar ;) Obrim el Visual Studio i creem un projecte C# (per exemple de consola). Si no elegixes un projecte buid com jo, a l'intentar fer els tests, et dona un error que no troba cap main, te tocarà crear un nou arxiu.cs, i posar-li una funció main dummy:

 class Program     {         static void Main(string[] args)         {         }     }
Afegim a la solució un projecte nou de test (ja ho vaig explicar a un altre post) i automàticament ens crea un test d'unitat, jo vaig pensar …

TDDs a Unity

Sí ja sé que feia molt de temps que no escrivia al bloc, no és que ho tinga abandonat, però acabe de ser pare, i l'embaraç i la meua xiqueta i el treball han segut prou durets últimament. A banda, duc aprenent a gastar Unity3D estos temps, la veritat és que estic enamorat del seu sistema, i a més em permet gastar el meu actual llenguatge preferit: C#.
Unity no és un entorn de desenvolupament, si no un entorn per a la creació de videojocs. Només es gasten llenguatges de programació per al comportament (scripting). Per a això és gasta un editor extern (ve per defecte el Monodevelop, però vaig aconseguir una vegada posar el Visual Studio.). Una de les primere limitacions que veig com a programador, és què Unity3d no està pensat en ells. Per tant no hi ha moltes opcions. Per exemple no he trobat cap eina per a realitzar els TDDs. Pot ser amb un plugin del Monodevelop, però vaig idear no pedre el temps. En un minijoc que estic realitzant ara (dels meus projectes mitjanets ja parlaré en…