Seite 1 von 1

[Pygame] Nach dem Ausfürhen bleibt der PC hängen.

Verfasst: Dienstag 22. Januar 2008, 20:40
von GiseLHeR
Hallo Ich habe hier ein Programm die, wenn ich in das Fenster klicke dort ein tile hinsetzen soll aber,

1. Das Tile taucht nicht auf.
2. Das Fenster lässt sich nicht mehr schließen und der PC bleibt nach einer Zeit hängen.

Code: Alles auswählen

# -*- coding: utf8 -*-

import pygame
from pygame.locals import *

class set_Tile(object):
    
    def __init__(self, mouse_pos):
        self.mouse_pos = mouse_pos

    def get_image_pos(self):
        xrunning = 1
        yrunning = 1
        x = 32
        y = 32
        self.image_pos = [0, 0]
        while xrunning:
            while yrunning:
                if self.mouse_pos[1] < y:
                    self.image_pos[1] = y - 32
                    break
                else:
                    y += 32
            if self.mouse_pos < x:
                self.image_pos[0] = x -32
                break
            else:
                x += 32
        return self.image_pos
    
def loadImage(filename, colorkey = None):
    image = pygame.image.load(filename)
    if image.get_alpha() == None:
        image = image.convert()
    else:
        image = image.convert_alpha()
    if colorkey is not None:
        if colorkey is -1:
            colorkey = image.get_at((0,0))
        image.set_colorkey(colorkey, RLEACCEL)
    return image

def main():
    pygame.init
    screen = pygame.display.set_mode((800, 600))
    background = loadImage("tiles/tile_gitter.png", (255, 0, 255))
    screen.fill((255, 255, 255))
    screen.blit(background, (0, 0))
    pygame.mouse.set_visible(True)
    clock = pygame.time.Clock()
    running = 1
    while running:
        clock.tick(50)
        
        for event in pygame.event.get():
            if event.type == QUIT:
                running = 0
            if event.type == KEYDOWN:
                if event.key == K_ESCAPE:
                    pygame.event.post(pygame.event.Event(QUIT))
                else:
                    pass
        buttons = pygame.mouse.get_pressed()
        if buttons[0] == True:
            mouse_pos = pygame.mouse.get_pos()
            whatever = set_Tile(mouse_pos)
            print "Hallo"
            image = loadImage("tiles/holz.png", (255, 0, 255))
            screen.blit(image, whatever.get_image_pos())
        pygame.display.flip()
main()
[/code]

Verfasst: Dienstag 22. Januar 2008, 21:07
von BlackJack
Könnte eventuell daran liegen, dass Du `pygame` nicht initialisierst ─ in Zeile 44 musst Du die Funktion auch *aufrufen*.

Verfasst: Mittwoch 23. Januar 2008, 08:39
von GiseLHeR
jupe und in zeile 24 hab ich bei self.mouse_pos das [0] vergessen.