bataille navale avec pygame
bonjour,
Pour mon problème, pygame et python seront spécifique à mon cas mais, je pense, pourra aider pour d'autre langage.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| #!/usr/bin/python
# -*- coding: iso-8859-1 -*-
import pygame
from pygame.locals import *
pygame.display.init()
continuer = False
def fenetre():
while 1:
fond = pygame.image.load("grille.jpg")
fenetre = pygame.display.set_mode((720, 501))
fenetre.blit(fond, (0,0))
pygame.display.flip()
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
continuer = True
pygame.mouse.get_pressed()
coordonne = pygame.mouse.get_pos()
print(coordonne)
fenetre() |
Ce (bout) de code est un début de bataille navale,
Comment créer une "adresse" pour chaque case du quadrillage afin de pouvoir tirer sur des coordonnées précises type 1A, 6C
je pensais le faire en récupérant les coordonnés de la souris et selon afficher la croix sur la case mais ça veut dire qu'il faut 2 conditions (coordonnés + savoir si le bouton gauche est pressé) + la fonction pour afficher l'image x 100 pour chaque cases donc 300 lignes de code pour presque rien...
de plus je n'ai pas de moyen de récupérer les coordonné vraiment précisément, je le fait avec ça:
Code:
1 2 3
| pygame.mouse.get_pressed()
coordonne = pygame.mouse.get_pos()
print(coordonne) |
mon affaire est un poil compliqué à expliquer veillez m'en excuser.
re: condition clique droit
re:
concernant la condition pour obtenir un clique droit, j'ai tout essayé celle fournit dans la doc officiel, celles de plusieurs tutos et celle de Josmiley mais rien ni fait mon code ne fonctionne pas
Code:
1 2 3 4 5
| if event.type == MOUSEBUTTONUP and event.button == 1:
print("true") #voir si la condition est remplie edit: non
croix = pygame.image.load("croix.png")
fenetre.blit(croix, (x_bis*42,y_bis*44)) #largeur et longeur d'une case
pygame.display.flip() |
pour le moment je ne cherche même pas à voir apparaître ma croix.png mais juste le "true" de mon print...
Cordialement ,bastien