Voici le problème, avec mon ami on a décidé de faire un fan game pokémon. On a donc créé notre première map avec Tiled Map Editor. Pour le code, on a pas le droit a PyGame, juste a Tkinter, et là encore on a pas le droit d'utiliser les class
J'ai un peu commencé à coder, j'arrive à afficher la carte, j'utilise un canvas, et j'ai réglé la taille de ce dernier pour avoir à peu près le "zoom" de la caméra des jeux pokémon, mais quand je veux faire en sorte que ça prenne la taille de la fenêtre, je vois la totalité de la map. N'y a-t-il pas de moyen pour juste étendre le canvas ?
Je vous met le code, ça reste un peu brouillon
from tkinter import *
def Clavier(event):
""" Gestion de l'evenement Appui sur une touche du clavier """
global PosX,PosY
touche = event.keysym
print(touche)
# deplacement vers le haut
if touche == 'z':
PosY += 16
# deplacement vers le bas
if touche == 's':
PosY -= 16
# deplacement vers la droite
if touche == 'd':
PosX -= 16
# deplacement vers la gauche
if touche == 'q':
PosX += 16
Image = Canevas.create_image(PosX, PosY, image=Map, anchor = NW)
Mafenetre = Tk()
Mafenetre.title('Pion')
Mafenetre.geometry("1680x1050")
Map=PhotoImage(file="M:\Pokémon\Map.gif")
PosX = 0
PosY = 0
x = 120
y = 136
Canevas = Canvas(Mafenetre, width = 256, height = 256, bg ='white')
Image = Canevas.create_image(PosX, PosY, image=Map, anchor = NW)
Canevas.focus_set()
Canevas.bind('<Key>',Clavier)
Canevas.pack(padx =5, pady =5)
Mafenetre.mainloop()
Ca peut paraître bête, mais je voudrai que en gros, ce que j'affiche en 256*256, je puis l'afficher sur la totalité de la fenêtre mais que ca affiche la même chose, pas plus ? Je sais pas si je suis claire
Il faudrait que tu ne dessines que la partie de la carte que tu souhaites vraiment afficher, et non la totalité.
Mais tu ferais mieux de travailler avec ta map dansun format plus adapté (comme celui exporté par Tiled Map Editor) plutôt qu'un gif.
(auteur du projet : moi, sources fermées depuis environ 1 an, full python + pygame)
ET PYGAME C'EST LIBRE et cool aussi btw
et pour te forcer à passer à pygame, parce que franchement tk, je vois pas pourquoi tu serais forcé de l'utiliser (hormis une histoire de compatibilité entre machine ou quoi, ce qui est pas un problème), un tuto sur pygame : https://zestedesavoir.com/contenus/beta/846/pygame-pour-les-zesteurs/
Parce que c'est pour le bac, et on a pas le droit d'utiliser PyGame, c'est trop simple sinon... Donc ça me désespère de se mettre des bâtons dans les roues, mais j'ai pas le choix
Perso en ISN on a eu 0 limitation donc avec mon groupe on est parti du Python+Pygame avec un launcher codé en C (c'était totalement inutile, mais rigolo à faire). Et dans les programmes de l'éducation nationale, il n'y a pas écrit qu'utiliser tel ou tel truc c'est trop facile, tu peux en parler à ton prof, c'est totalement con ce qu'il demande là.
PS: pour les déplacements, essaye de faire un minimum smooth, au lieu de bouger d'un coup de 16 px. Par exemple :
speed = 16
...
# code de gestion des keys events
if key == key_up:
going_up = speed
...
# code d'update de la fenetre (exécuté par ex. 60 fois par seconde)
if going_up: # en gros, on rentre dedans tant que going_up != 0
x, going_up = x - 1, going_up - 1
Perso je pense que tu devrais fixer la taille de ton canvas pour le moment et attendre d'avoir un peu avancé dans ton projet et dans ta pratique de tkinter avant de chercher à jouer avec le redimensionnement des images, ne pas mettre les bœufs avant la charrue.
Sérieux c'est pas interdit ? J'avais commencé avec pygame puis la prof avait dit que j'avais pas le droit donc bah j'ai fait avec Tkinter, mais si on a le droit a pygame, ça va aller tellement plus vite
Merci en tout cas
Donc je devrai continué a faire mon jeu sur un format 256*256 ?
De toute façon j'ai pas trop d'autres solutions pour l'instant
- Edité par GaMeRzxFun 12 novembre 2017 à 20:29:21
C'est elle qui a fixé cette "règle" je pense. Si tu regardes sur google, par exemple en cherchant BAC ISN pygame tu verras que beaucoup de gens l'ont utilisé.
Si ton prof te dit de ne pas utiliser Pygame, c'est qu'il doit avoir ses raisons. Demande-lui avant.
Ceci dit je ne trouve pas que Pygame soit plus simple que tkinter. Les possibilités avec Pygame sont peut-être plus nombreuse, mais ton projet est parfaitement réalisable avec tkinter (aussi facilement qu'avec Pygame).
Après si on te dit que tu es libre de choisir, va voir du coté de pyglet, ou même carrément cocos2d.
J'en discuterai avec elle jeudi, je vous tiendrai au courant des éventuels avancés et du coup si jamais j'ai besoin d'un petit coup de main
EN tout cas merci de vos réponses
Besoin d'aide pour un jeu type Pokémon
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique