|
Archives -
blog.elderlore.com
|
|
Written by Altefcat
|
|
Saturday, 05 January 2008 22:14 |
|
| La première version des églises est maintenant opérationnelle.
La première version des églises est maintenant opérationnelle. Leurs tailles peuvent varier en longueur et en largeur, tant que la largeur est impaire (pour avoir l'autel au milieu), et que la longueur est supérieure à la largeur. Elles sont toujours orientés à l'est, comme les vraies.

J'ai utilisé dans le code une astuce de programmation que j'avais lue dans un tutoriel sur Numpy et Numeric. Il est possible de déclarer une variable comme pointant sur seulement une partie d'un tableau Numeric. Toute affectation à cette variable modifiera le tableau d'origine. Ainsi dans le module el_zone.py, la variable self.l2 est un tableau Numeric à deux dimensions contenant les valeurs des tuiles de la seconde couche de la zone (comme les murs).
Avec le code suivant :
def Ajoute_Eglise(self, pos, taille):
"""
Ajoute une église sur la zone
"""
l2 = self.l2[pos[0]:pos[0]+taille[0], pos[1]:pos[1]+taille[1]]
on affecte à l2 la portion du tableau self.l2 dans lequel on veux placer l'église. Pour ajouter l'autel à la moitié de la largeur et au milieu du transept de l'église, on fera :
# Ajout de l'autel
l2[taille[0]-tx/2-tcoeur, taille[1]/2] = el.ZONE_L2_AUTEL_BIEN
tx représente la longueur du transept, et tcoeur la longueur du coeur. Voila un plan d'une église tiré de Wikipédia pour frimer comme moi avec plein de noms d'architecture d'églises :

Si vous aimez les romans historiques, je vous recommande chaudement Les Piliers de la Terre, un bouquin qui retrace admirablement la vie au Moyen Age en Grande Bretagne, et qui accessoirement m'a donné envie d'avoir des cathédrales et des prieurés dans le jeu. |