Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: Mastodonte en 25 Septiembre 2017, 21:01 pm



Título: [PYTHON]Como guardar las cordenadas de una imagen para luego cambiarla por otra?
Publicado por: Mastodonte en 25 Septiembre 2017, 21:01 pm
Hola, primero queria pedir disculpas por preguntar tantas cosas,es que no se casi nada de python y eso pues, ahora lo de la pregunta.

Yo estoy haciendo un minijuego es muy basico un personaje tipo RPG que se mueve por el mapa, mas nada, pero no se como guardar las ultimas coordenadas donde estuvo la primera imagen para luego en la posicion donde quedo la primera imagen se cambien por la segunda, no se si se eniende.

Lo que quiero es esto:

Cuando el personaje se mueva por ejemplo abajo ok, pero quiero que cuando el personaje se mueva a la ejemplo derecha, la imagen de el personaje yendo hacia abajo se cambie por la que esta viendo hacia la derecha. algo asi.

Ni idea de como hacerlo .
 :-\ :-\
ya llevo casi dos días con lo mismo.

mi codigo esta en pastebin:

https://pastebin.com/sEXizRtR (https://pastebin.com/sEXizRtR)


Título: Re: [PYTHON]Como guardar las cordenadas de una imagen para luego cambiarla por otra?
Publicado por: tincopasan en 26 Septiembre 2017, 02:41 am
varias cosas:
1) esto debería ir en scriting(por algo es python),sería bueno que algún moderador lo mueva.
2) para lo que querés hacer hay librerías mejores, pygame por ejemplo
3)no entiendo la lógica de tu script, pero en fin, para hacerlo medianamente funcional uso basicamente lo que hiciste
4)seguis usando pack() y ya te dije que es más funcional  place(), pero el código es tuyo.
5)está funcional el que hice solo para up y down, el resto te toca a vos.
Código
  1. from tkinter import *
  2. tk= Tk()
  3.  
  4. tk.title("Juego RPG")
  5. c= Canvas(tk, width=400, height=400)
  6. tk.geometry(newGeometry="400x400")
  7. fondo = PhotoImage(file='fondo.gif')
  8. c.create_image(0,0,anchor=NW, image=fondo)
  9. posx=120
  10. posy=120
  11. c.place(x=0,y=0)
  12. arriba = PhotoImage(file='arriba.gif')
  13. abajo = PhotoImage(file='abajo.gif')
  14. img_arr= c.create_image(posx,posy,image=arriba)
  15. cuantas= 0
  16.  
  17. def moverPersonaje(event):
  18.    global posx
  19.    global posy
  20.    global img_arr
  21.    global img_aba
  22.    global cuantas
  23.    if event.keysym == 'Up':
  24.        posx=posx
  25.        posy-=5
  26.        if cuantas !=0:
  27.            c.delete(img_aba)
  28.        c.delete(img_arr)
  29.        img_arr= c.create_image(posx,posy,image=arriba)
  30.  
  31.    elif event.keysym == 'Down':
  32.        posx = posx
  33.        posy += 5
  34.        if cuantas == 0:
  35.            c.delete(img_arr)
  36.            img_aba=c.create_image(posx,posy,image=abajo)
  37.            cuantas+=1
  38.        else:
  39.            c.delete(img_arr)
  40.            c.delete(img_aba)
  41.            img_aba=c.create_image(posx,posy,image=abajo)
  42.  
  43.    c.update()
  44.  
  45. c.bind_all('<Up>',moverPersonaje)
  46. c.bind_all('<Down>',moverPersonaje)
  47. c.bind_all('<Left>',moverPersonaje)
  48. c.bind_all('<Right>',moverPersonaje)
  49. tk.mainloop()
  50.  


Título: Re: [PYTHON]Como guardar las cordenadas de una imagen para luego cambiarla por otra?
Publicado por: Mastodonte en 26 Septiembre 2017, 14:13 pm
gracias muchas gracias, ya iba para 3 dias  :xD, pero no entiendo el
Código
  1. if cuantas != 0:
  2.     canvas.delete(img_aba)
  3.  
:-\
no entiendo lo que hace la variable cuantantas  :-\ :-X
no se si se refiere a las variables de imagenes o no ni idea de lo que hace esa variable

lo de  el script es un minijuego que estoy haciendo , y sobre lo de pygame yo tengo enmi escritorio en archivo .whl pero cuando lo voy a instalar por cmd me dice
Código:
Invalid sintax for wheel

y no se que hacer, y ademas antes de usar frameworks tengo que saber lo que esta pasando por debajo de el programa no se si me explico  :)

y por cierto como sabes tanto de python, donde lo aprendiste?
deberías ser un profesor de algún curso de python