Foros del Web » Programando para Internet » Python »

laberinto

Estas en el tema de laberinto en el foro de Python en Foros del Web. bueno, me acerco a uds para ver si me colaboran en esto que quiero hacer hace rato, pero por falta de sabiduria no he podido ...
  #1 (permalink)  
Antiguo 22/06/2009, 11:36
 
Fecha de Ingreso: junio-2009
Mensajes: 5
Antigüedad: 15 años, 5 meses
Puntos: 0
laberinto

bueno, me acerco a uds para ver si me colaboran en esto que quiero hacer hace rato, pero por falta de sabiduria no he podido terminar, se trata de un laberinto casi imposible de solucionar, pero la cuestin es hacer una colision para una imagen completa y ademas tan grande en formato "png".

la otra parte del juego que es el movimiento de la pelota atravez del laberinto y la creacion de un afecto camara, eso lo saque de un ejemplo de esta pagina ://brunoprog64.blogsome.com/2008/01/24/efecto-de-camera-con-pygame/ el de esta pagina tiene unos cuantos errores que arregle a duras penas, quemando pestaña toda una semana, por que la verdad no encontre nada mas en ningun sitio, y no se mucho de programar, por eseo me fue tan dificil, pero ya esta. bueno, aqui esta el codigo

Código:
Código python:
Ver original
  1. # #### efecto camara laberinto #### #
  2.  
  3. # -*- coding: iso-8859-1 -*-
  4.  
  5. import wx
  6.  
  7. provider = wx.SimpleHelpProvider()
  8. wx.HelpProvider_Set(provider)
  9.  
  10. import MyFrame
  11.  
  12.  
  13. class App(wx.App):
  14.     def OnInit(self):
  15.         wx.InitAllImageHandlers()
  16.         self.main = MyFrame.MyFrame(None,-1,'')
  17.         self.main.Show()
  18.         self.SetTopWindow(self.main)
  19.         return 1
  20.  
  21. def main():
  22.     application = App(0)
  23.     application.MainLoop()
  24.  
  25. if __name__ == '__main__':
  26.     main()
  27.  
  28.  
  29.  
  30.  
  31. class VwXtaskBar(wx.TaskBarIcon):
  32.     def __init__(self,win):
  33.         self.win=win
  34.         wx.TaskBarIcon.__init__(self)
  35.         self.Bind(wx.EVT_TASKBAR_MOVE,self.VwXAllEvents)
  36.         self.Bind(wx.EVT_TASKBAR_LEFT_DOWN,self.VwXAllEvents)
  37.         self.Bind(wx.EVT_TASKBAR_LEFT_UP,self.VwXAllEvents)
  38.         self.Bind(wx.EVT_TASKBAR_RIGHT_DOWN,self.VwXAllEvents)
  39.         self.Bind(wx.EVT_TASKBAR_RIGHT_UP,self.VwXAllEvents)
  40.         self.Bind(wx.EVT_TASKBAR_LEFT_DCLICK,self.VwXAllEvents)
  41.         self.Bind(wx.EVT_TASKBAR_RIGHT_DCLICK,self.VwXAllEvents)
  42.         self.Bind(wx.EVT_MENU,self.OnMenu,id=-1)
  43.        
  44.     def VwXAllEvents(self,event):
  45.         self.win.GetEventHandler().ProcessEvent(event)
  46.         if(event.GetEventType()==wx.wxEVT_TASKBAR_RIGHT_DOWN):
  47.             event.Skip(True)
  48.  
  49.     def CreatePopupMenu(self):
  50.         return self.win.VwXGetTaskBarMenu()
  51.  
  52.     def OnMenu(self,event):
  53.         self.win.GetEventHandler().ProcessEvent(event)
  54.  
  55.  
  56.  
  57. import pygame
  58. from pygame.locals import *
  59.  
  60. pygame.init()
  61.  
  62.  
  63.  
  64. campo = pygame.image.load('imag/campo.jpg')
  65. bola = pygame.image.load('imag/icono3.png')
  66. fondo = pygame.image.load("imag/laberinto.png")
  67. bol = bola.get_rect()
  68.  
  69.  
  70.  
  71.  
  72. bol.left = 35
  73. bol.top = 45
  74.  
  75. bola_tl = bol.left
  76. bola_tt = bol.top
  77. ayu = 5
  78.  
  79. clock = pygame.time.Clock()
  80.  
  81. screen = pygame.display.set_mode((320,240))
  82.  
  83. n = 0
  84. campo_x = 0
  85. campo_y = 0
  86.  
  87.  
  88.  
  89.  
  90.  
  91. while n <> 1:
  92.     screen.blit(campo, (campo_x,campo_y))
  93.     screen.blit(bola, (bola_tl, bola_tt))
  94.     screen.blit(fondo, (campo_x, campo_y))
  95.     pygame.display.flip()
  96.    
  97.     clock.tick(50)
  98.    
  99.     pygame.event.pump()
  100.     tecla_pres = pygame.key.get_pressed()
  101.    
  102.  
  103.    
  104.     if tecla_pres[K_LEFT]:
  105.         bol.left = bol.left - 5
  106.         bola_tl = bola_tl - 5
  107.        
  108.         if bola_tl <10> 10:
  109.                
  110.                 bola_tl = 10
  111.                 campo_x = campo_x + ayu
  112.             else:
  113.                 bola_tl = 10
  114.                 bol.left = 10
  115.        
  116.     if tecla_pres[K_RIGHT]:
  117.         bol.left = bol.left + 5
  118.         bola_tl = bola_tl + 5
  119.        
  120.        
  121.         if bola_tl > 290:
  122.             if bol.left  <4970> 20:
  123.                    
  124.                    bola_tl = 290
  125.                    campo_x = campo_x - ayu
  126.             else:      
  127.               bola_tl = 290
  128.               bol.left = 4970
  129.              
  130.                
  131.              
  132.                
  133.     if tecla_pres[K_UP]:
  134.         bol.top = bol.top - 5
  135.         bola_tt = bola_tt - 5
  136.        
  137.         if bola_tt <10> 10:
  138.                
  139.                 bola_tt = 10
  140.                 campo_y = campo_y + ayu
  141.             else:
  142.                 bola_tt = 10
  143.                 bol.top = 10
  144.          
  145.        
  146.     if tecla_pres[K_DOWN]:
  147.         bol.top = bol.top + 5
  148.         bola_tt = bola_tt + 5
  149.        
  150.        
  151.         if bola_tt > 210:
  152.             if bol.top  <4970> 210:
  153.                    
  154.                    bola_tt = 210
  155.                    campo_y = campo_y - ayu
  156.             else:      
  157.                 bola_tt = 210
  158.                 bol.top = 4970
  159.              
  160.              
  161.              
  162.              
  163.              
  164.     for event in pygame.event.get():
  165.         if event.type == QUIT:
  166.             n = 1
  167.         if event.type == KEYDOWN:
  168.             if event.key == K_ESCAPE:
  169.                 n = 1
  170.             if event.key == K_p:
  171.                 print "Valor Campo_x: ", campo_x
  172.                 print "Valores de bola - Camara:"
  173.                 print "Left: ", bol.left
  174.                 print "Top: ", bol.top
  175.                 print "Valores de bola - Pantalla:"
  176.                 print "Left: ", bola_tl
  177.                 print "Top: ", bola_tt

y pues aca esta un rar de el proyecto, por si quieren verlo funcionando y veran que es lo que quiero hacer, es un poquito pesado, pero por lo que las imagenes de el laberinto son tan grandes.
por algo es un laberinto casi imposible de solucionar.

://rapidshare.com/files/247044695/laberinto_paso_1.rar.html solo es cuestion de agregar el http al principio

Última edición por AlvaroG; 23/06/2009 a las 10:24
  #2 (permalink)  
Antiguo 23/06/2009, 00:49
Avatar de dmassive  
Fecha de Ingreso: febrero-2002
Ubicación: Paraná - Entre Ríos - Argentina
Mensajes: 279
Antigüedad: 22 años, 8 meses
Puntos: 7
Pregunta Respuesta: laberinto

Cita:
Iniciado por xulubkisin Ver Mensaje
la creacion de un afecto camara, eso lo saque de un ejemplo de esta pagina ://brunoprog64.blogsome.com/2008/01/24/efecto-de-camera-con-pygame/ el de esta pagina tiene unos cuantos errores que arregle a duras penas, quemando pestaña toda una semana, por que la verdad no encontre nada mas en ningun sitio
Interesante tema... probe el ejemplo de ese sitio y funciona bien... ¿cuales serian los errores que te dio?
__________________
Blümchen... einfach die rave Prinzessin
http://www.dmassive.com.ar/
  #3 (permalink)  
Antiguo 23/06/2009, 07:37
 
Fecha de Ingreso: junio-2009
Mensajes: 5
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: laberinto

Cita:
Iniciado por dmassive Ver Mensaje
Interesante tema... probe el ejemplo de ese sitio y funciona bien... ¿cuales serian los errores que te dio?
tenes que descargar el codigo de ese sitio y lo comparas con el mio, hay encontras que los errores se forman cuando vos queres desplazarte, cuando vas a la derecha y llegas a fondo, la imagen no se borra, y cuando vas hacia la izquierda, la imagen se salta de sitio.

pero lo que yo quiero es implementarle a esto es una colision entre el personaje, que en este caso seria "bola" y el laberinto, que son dos imagenes con extencion "png" pero es dificil hacerla por partes para el laberinto.
  #4 (permalink)  
Antiguo 24/06/2009, 11:03
 
Fecha de Ingreso: junio-2009
Mensajes: 5
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: laberinto

bueno, ya le he tirado mucha cabeza a como hacerlo, y tambien me dieron una idea de que lo hiciera con una matrix cuadro por cuadro, pero cuando voy ha hacer el mapa de el laberinto en el block de notas este no me deja crearlo, por que solo deja crear 1024 columnas, y el laberinto necesita mucho mas que eso, y si intento cortar las las columnas para que me quede en muchas lineas, el python no me lo lee como valido y no imprime las imagenes en pantalla, entonces no se quien me puede ayudar con esto.
esto es lo primero que hice: 00010000101010010011, y esto es lo segundo

00010
00010
10100
10011 pero no me da con ninguno, ayudenme.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:44.