Hallo liebe Community,
ich habe jetzt beschlossen mein Problem, mit dem Level auf den Bildschirm bringen, ganz einfach dadurch zu umgehen, dass ich mir einen schönen Hintergrund als Bild male den einscane und schließlich ins Fenster lade. Aber wie kann ich das Bild nun an die Größe des Fensters per Code anpassen? Ist wahrscheinlich total simpel, aber ich komm einfach nicht drauf. Danke im Voraus.
Hintergrundanpassung
-
- User
- Beiträge: 155
- Registriert: Freitag 29. Dezember 2006, 18:27
Äh, dumme Frage: worum gehts denn?
http://playit.ch/channel-onlinespiele.php?game=2556
Sowas in etwa soll es werden. Den Hintergrund male ich mir, scan ihn dann ein und lade das dann in ein Pygame-Fenster. Nun brauche ich eine Methode, um das Bild genau der Größe des Spielfensters anzupassen.
Sowas in etwa soll es werden. Den Hintergrund male ich mir, scan ihn dann ein und lade das dann in ein Pygame-Fenster. Nun brauche ich eine Methode, um das Bild genau der Größe des Spielfensters anzupassen.
-
- User
- Beiträge: 155
- Registriert: Freitag 29. Dezember 2006, 18:27
Hm, vielleicht ist diese Funktion was für dich. Ich vermute einfach mal, dass es um Pygame geht.
Gruß Fred
Gruß Fred
Ich hab das jetzt mal so in meinen Code reingebracht:
aber ich krieg die Fehlermeldung, dass in der klammer keine Argumente stehen dürften (Traceback (most recent call last):
File "C:\Python25\Porjekte\Game.py", line 6, in <module>
pygame.transform.scale(landschaft, (800, 400), karte = None)
TypeError: scale() takes no keyword arguments)
Bei dem Link stand die Funktion aber so dran (DestSurface hab ich einfach so interpretiert, dass damit das Rect gemeint ist):
Code: Alles auswählen
import pygame, os, sys
from pygame.locals import*
pygame.init()
landschaft = pygame.image.load('Gray.bmp')
karte = landschaft.get_rect()
pygame.transform.scale(landschaft, (800, 400), karte = None)#das isses
black = 0, 0, 0
size = width, height = 800, 400
screen = pygame.display.set_mode(size)
screen.fill(black)
screen.blit(landschaft, karte)
pygame.display.flip()
File "C:\Python25\Porjekte\Game.py", line 6, in <module>
pygame.transform.scale(landschaft, (800, 400), karte = None)
TypeError: scale() takes no keyword arguments)
Bei dem Link stand die Funktion aber so dran (DestSurface hab ich einfach so interpretiert, dass damit das Rect gemeint ist):
Code: Alles auswählen
pygame.transform.rotate(Surface, angle): return Surface
Zuletzt geändert von Imperator am Dienstag 30. Oktober 2007, 11:35, insgesamt 1-mal geändert.
Da steht nicht es werden keine Argumente angenommen, sondern keine Keyword-Argumente. Und selbst wenn, gäbe es ja wohl in einer englischen API keines das `karte` heisst.
Wenn Du an der Stelle sowieso `None` übergeben willst, kannst Du es auch einfach weglassen.
Wenn Du an der Stelle sowieso `None` übergeben willst, kannst Du es auch einfach weglassen.
In Ordnung, hab ich gemacht. Jetzt startet das Programm zwar, aber die Größe des Bildes wird dadurch nicht beeinflusst.
Die Funktion gibt ein neues, skaliertes `Surface` zurück. *Das* müsstest Du anzeigen.
Jetzt steh ich volmommen auf dem Schlauch. Das Image wird doch erst mit screen.blit(landschaft, karte) angezeigt. Und das kommt am ende. Also zeige ich das ursprüngliche Bild gar nicht an, sondern nur das skalierte.
Nein Du zeigst mit `landschaft` das ursprüngliche Bild an. Dem Skalierten gibst Du keinen Namen, das wird einfach sofort nach seiner Entstehung wieder verworfen. Das wird von der Funktion *zurückgegeben*, die ändert *nicht* das Bild was Du übergibst.
Jetzt hab ichs kapiert. Und es funktioniert sogar!
Also Danke BlackJack und fred.reichbier!
Also Danke BlackJack und fred.reichbier!