[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Yes I'm finally getting "Classes" with pygame.



True, I attached the other files this time.  Would be nice if python loaded faster though :).

On 9/8/07, Luke Paireepinart <rabidpoobear@xxxxxxxxx> wrote:
Lamonte Harris wrote:
> :D I'm making progress, taught my self some what of how to move images
> using keyboard keys.  First I took some animated ball moving script
> ripped it apart tried understanding it and edited it a bit, was fun.
> Then I rewrote it using classes :D with my basic Python Knowledge I've
> been studying for forever and I pulled it off.  So far so good.
>  [snip code]
> (Gmail messed up my spacing -.-)
That's why you should always attach large blocks of code instead of
putting them in the message body.  Gmail doesn't mess with attachments.
> So quick question, How come when I used my class it doesn't load any
> faster then I thought it would?
Why would you think it would load faster?
Just because you used classes?
Classes aren't meant to make code faster, they're just a different level
of abstraction that makes your code easier to manage and more logical to
humans.
-Luke

import sys, pygame
from pygame.locals import *
pygame.init()
size = width , height = 320, 240
speed = [0,0]
pace = 10
black = 0, 0, 0
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Demonics Ball Game[Rofl]")
ball = pygame.image.load("ball.gif")
ballrect = ball.get_rect()
print ballrect[3]
wi = 10
hi = 10
x = 0
while True:
	for event in pygame.event.get():
		pygame.key.set_repeat()
		if event.type == pygame.QUIT: sys.exit()
		elif event.type == pygame.KEYDOWN:
			pygame.event.pump()
			key = pygame.key.get_pressed()
			ballrect = speed
			if key[K_DOWN] and speed[1] < height-wi:
				speed[1] += pace
			if key[K_UP] and speed[1] > 0:
				speed[1] -= pace
			if key[K_LEFT] and speed[0] > 0:
				speed[0] -= pace
			if key[K_RIGHT] and speed[0] < width-hi:
				speed[0] += pace
	#ballrect = ballrect.move(speed)
	#if ballrect.left < 0 or ballrect.right > width:
	#	speed[0] = -speed[0]
	#if ballrect.top < 0 or ballrect.bottom > height:
	#	speed[1] = -speed[1]
	screen.fill(black)
	screen.blit(ball, ballrect)
	pygame.display.update()
import sys,pygame
from pygame.locals import *
class MoveBall(object):
	def __init__(self,size,pace,background,caption="Game Practice"):
		pygame.init()
		self.size = self.width,self.height = size
		self.speed = [0,0]
		self.pace = pace
		self.color = background
		self.window = pygame.display.set_mode(self.size)
		pygame.display.set_caption(caption)
	def load_image(self,img):
		image = pygame.image.load(img)
		return image
	def update(self,img):
		ball = img
		rect_ = ball.get_rect()
		bw = rect_[2]
		bh = rect_[3]
		while True:
			ballrect = self.speed
			for event in pygame.event.get():
				pygame.key.set_repeat()
				if event.type == pygame.QUIT: sys.exit()
				elif event.type == pygame.KEYDOWN:
					pygame.event.pump()
					key = pygame.key.get_pressed()
					ballrect = self.speed
					if key[K_DOWN] and self.speed[1] < self.height-bw:
						self.speed[1] += self.pace
					if key[K_UP] and self.speed[1] > 0:
						self.speed[1] -= self.pace
					if key[K_LEFT] and self.speed[0] > 0:
						self.speed[0] -= self.pace
					if key[K_RIGHT] and self.speed[0] < self.width-bh:
						self.speed[0] += self.pace
			self.window.fill(self.color)
			self.window.blit(ball, ballrect)
			pygame.display.update()
Ball = MoveBall((320,240),2,(0,0,0))
image = Ball.load_image("ball.gif")
Ball.update(image)

Attachment: ball.gif
Description: GIF image