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

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
GiseLHeR
User
Beiträge: 13
Registriert: Dienstag 22. Januar 2008, 20:34

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]
BlackJack

Könnte eventuell daran liegen, dass Du `pygame` nicht initialisierst ─ in Zeile 44 musst Du die Funktion auch *aufrufen*.
GiseLHeR
User
Beiträge: 13
Registriert: Dienstag 22. Januar 2008, 20:34

jupe und in zeile 24 hab ich bei self.mouse_pos das [0] vergessen.
Antworten