¿Se puede crear programas el python o pygame sin clases?

Agrupa todas las consultas sobre los lenguajes de programacion como C, C++, Python, Java ...

¿Se puede crear programas el python o pygame sin clases?

Notapor ºNIÑO_HEOREº » Vie Ago 20, 2010 4:16 am

hola soy algo novatito jja;) y mi duda es que evisto algunos juegos o aplicasiones donde no usan las clases, y otro donde si usan las clases :roll:

Esque se me ase algo complicado crearles clases es que toda via no lo comprendo :oops: aun :oops:
Lo que evisto o creo qeu la diferencia es que esque ,si quiero crear un personaje o protagonista en el pygame ponerle una clase y :( se me ase muy largo

Mi pregunta seria es que si es posible no poner las clases en algun juego las clases por ejemplo en este juego :shock:


#!/usr/bin/env python
02 # -*- coding: utf-8 -*-
03
04 # Módulos
05 import sys, pygame
06 from pygame.locals import *
07
08 # Constantes
09 WIDTH = 640
10 HEIGHT = 480
11
12 # Clases
13 # ---------------------------------------------------------------------
14
15 class Bola(pygame.sprite.Sprite):
16 def __init__(self):
17 pygame.sprite.Sprite.__init__(self)
18 self.image = load_image("images/ball.png", True)
19 self.rect = self.image.get_rect()
20 self.rect.centerx = WIDTH / 2
21 self.rect.centery = HEIGHT / 2
22 self.speed = [0.5, -0.5]
23
24 def actualizar(self, time):
25 self.rect.centerx += self.speed[0] * time
26 self.rect.centery += self.speed[1] * time
27 if self.rect.left <= 0 or self.rect.right >= WIDTH:
28 self.speed[0] = -self.speed[0]
29 self.rect.centerx += self.speed[0] * time
30 if self.rect.top <= 0 or self.rect.bottom >= HEIGHT:
31 self.speed[1] = -self.speed[1]
32 self.rect.centery += self.speed[1] * time
33
34 class Pala(pygame.sprite.Sprite):
35 def __init__(self, x):
36 pygame.sprite.Sprite.__init__(self)
37 self.image = load_image("images/pala.png")
38 self.rect = self.image.get_rect()
39 self.rect.centerx = x
40 self.rect.centery = HEIGHT / 2
41 self.speed = 0.5
42
43 def mover(self, time, keys):
44 if self.rect.top >= 0:
45 if keys[K_UP]:
46 self.rect.centery -= self.speed * time
47 if self.rect.bottom <= HEIGHT:
48 if keys[K_DOWN]:
49 self.rect.centery += self.speed * time
50
51 # ---------------------------------------------------------------------
52
53 # Funciones
54 # ---------------------------------------------------------------------
55
56 def load_image(filename, transparent=False):
57 try: image = pygame.image.load(filename)
58 except pygame.error, message:
59 raise SystemExit, message
60 image = image.convert()
61 if transparent:
62 color = image.get_at((0,0))
63 image.set_colorkey(color, RLEACCEL)
64 return image
65
66 # ---------------------------------------------------------------------
67
68 def main():
69 screen = pygame.display.set_mode((WIDTH, HEIGHT))
70 pygame.display.set_caption("Pruebas Pygame")
71
72 background_image = load_image('images/fondo_pong.png')
73 bola = Bola()
74 pala_jug = Pala(30)
75
76 clock = pygame.time.Clock()
77
78 while True:
79 time = clock.tick(60)
80 keys = pygame.key.get_pressed()
81 for eventos in pygame.event.get():
82 if eventos.type == QUIT:
83 sys.exit(0)
84
85 bola.actualizar(time)
86 pala_jug.mover(time, keys)
87 screen.blit(background_image, (0, 0))
88 screen.blit(bola.image, bola.rect)
89 screen.blit(pala_jug.image, pala_jug.rect)
90 pygame.display.flip()
91 return 0
92
93 if __name__ == '__main__':
94 pygame.init()
95 main()

ME PODRIAN AYUDAR O GUIAR :roll: :roll:
Avatar de Usuario
ºNIÑO_HEOREº
 
Mensajes: 6
Registrado: Dom Ago 15, 2010 4:52 am
Ubicación: mexico lindo ;)

Re: ¿Se puede crear programas el python o pygame sin clases?

Notapor carlostex » Vie Ago 20, 2010 5:16 am

En python puedes crear funciones y declarar variables fuera de clases, eso hace que sí puedas crear un programa sin clases.
¿Pero ya te detuviste a pensar como quitarias las clases de ese codigo y las pasarias a funciones y variables?¿Como organizarías ese codigo?

La verdad es que lo veo un poco tedioso, tienes que cuidar tus variables, si por ejemplo quieres crear un actor, el cual tiene posiciones y velocidad, al igual que una imagen; además tienes entidades estaticas la cuales tienen posicion y una imagen, de entrada tienes que poner nombres distintos a las variables de la posicion de cada entidad(actor u objeto), y peor aún, por cada actor que quieras usar en el juego tendras que definir variables que representan lo mismo para todos(como la posicion y su imagen) pero con nombres distintos. eso es mucho codigo.
En resumen, vale mas la pena entender como usar clases, que no es algo de otro mundo, es python es muy sencillo, que hacer lo que te dije antes.
El conocimiento de unos es conocimiento de todos.
Avatar de Usuario
carlostex
 
Mensajes: 249
Registrado: Mar Jul 14, 2009 4:13 am
Ubicación: mexico

Re: ¿Se puede crear programas el python o pygame sin clases?

Notapor adrigm77 » Vie Ago 20, 2010 7:17 am

Bonito código, no sé de que me suena... jajaja tal vez de que lo haya escrito yo, que cosas :shock: xD

Bueno a tu pregunta, el código lo has sacado de mi tutorial de pygame de razón artificial, en el explico lo básico de Pygame. Doy como requesito previo conocer Python a nivel consola.

Aunque Python puede usarse de forma funcional (a base de funciones) perfectamente, Pygame está orientado a objetos totalmente y claro si no conoces a cerca de clases y objetos pues difícilmente se puede continuar.

SDL por ejemplo está escrito en C y todo son funciones, pero la mayoría que trabaja con SDL lo hace desde C++ y haciendo uso de clases. En el mundo de los videojuegos la OO es algo fundamental ya que es una paradigma ideal para este estilo de software.

Mi recomendación es que antes de seguir con Pygame aprendas bien el lenguaje, aprende a usar OO, comprender luego el tutorial de Pygame será pan comido. Si tienes problemas con OO en Python te puedo echar un cable si quieres.
Razón Artificial - La ciencia y el arte de crear videojuegos.
Avatar de Usuario
adrigm77
 
Mensajes: 43
Registrado: Dom Jul 25, 2010 8:03 pm
Ubicación: Las Palmas de Gran Canaria, España

Re: ¿Se puede crear programas el python o pygame sin clases?

Notapor ºNIÑO_HEOREº » Vie Ago 20, 2010 4:11 pm

Orale me da mas estusiasmo en aprender mas es te lenguaje de python ;)

y por lo que entendi es que si si puede crear al gun juego en pygame sin clases jaja ;) :o :o
solo que seria un poquito + complicadito ;) :P :P :P

grasias por comentar ;)
:wink: :wink: :wink: :wink:
Avatar de Usuario
ºNIÑO_HEOREº
 
Mensajes: 6
Registrado: Dom Ago 15, 2010 4:52 am
Ubicación: mexico lindo ;)


Volver a Sobre lenguajes de programación

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron