Diverse Fragen zu Pygame (GUI, animierte Sprites)

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Ponticus
User
Beiträge: 6
Registriert: Freitag 4. Juli 2008, 15:16

Hallo,
ersteinmal Entschuldigung, falls eine meiner Fragen schon gestellt wurde, ich hab trotz Suche nichts dazu gefunden. Und zwar:
Als kleines Einstiegsprojekt (kleinere Spiele wie Pong habe ich schon gebastelt, ein totaler Anfänger bin ich nicht) in Pygame würde ich gerne ein simples Rollenspiel programmieren. Ich dachte dabei an eine Teilung des Bildschirm in einen Spielbereich in eine GUI, wo zum Beispiel die Lebenspunkte stehen, und eine Spielfläche aus der Topdown-Perspektive. Ist es sinnvoll, die GUI mit Sprites + Text zu gestalten oder sollte man auf ein GUI-Toolkit zurückgreifen. Anmerkung: Als Windowsnutzer kommt pgu wohl nicht infrage (ist doch nur für Linux, oder?).
Zu den Sprites habe ich auch noch eine zweite Frage: Wie erstelle ich "animierte Sprites", zum beispiel Feuer und binde die in das Spiel ein?
Ich hoffe meien Fragen waren nicht zu unspezifisch,
mit besten Grüßen Poniticus
Ponticus
User
Beiträge: 6
Registriert: Freitag 4. Juli 2008, 15:16

Hm, kann mir keiner helfen? Ich fass sonst meine Fragen nochmal kurz zusammen:
1) Taugt Pygame auch als Art GUI-Toolkit, und wenn ja gibt es dazu Tutorials?
2) Ist es möglich pgu unter Windows zu nutzen?
3) Kann ich animierte Sprites, zum Beispiel wie die Smileys im Forum, einbinden und wenn ja wie?

Beste Grüße und sollte ich beim Post einen Fehler gemacht haben bitte gerne kritisieren ;),
Ponticus
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo Ponticus, willkommen im Forum,
Ponticus hat geschrieben:2) Ist es möglich pgu unter Windows zu nutzen?
Laut den Kategorien im Cheeseshop sollte da nichts dagegen sprechen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ponticus
User
Beiträge: 6
Registriert: Freitag 4. Juli 2008, 15:16

Vielen Dank für deine Antwort.
Laut der Website scheint pgu für Windows zu gehen und einige scripts bekomme ich auch zum laufen, allerdings kommt beim includen (import pgu) und ausführen die Fehlermeldung, pgu sei nicht installiert. Gibt es da eine Lösung für?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ponticus hat geschrieben:allerdings kommt beim includen (import pgu) und ausführen die Fehlermeldung, pgu sei nicht installiert. Gibt es da eine Lösung für?
pgu installieren? :twisted:

Nein, im Ernst, wie gehst du vor und was für Fehler bekommst du?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
KC25m
User
Beiträge: 65
Registriert: Freitag 14. Juli 2006, 12:11
Wohnort: Kassel
Kontaktdaten:

Ich habe mit PGU auch gearbeitet unter Windows, läuft recht gut aber war für unser Projekt leider nicht ausreichen da es zuviel Resourcen gefressen hatte. Ist aber schon ein Jahr her.

Bei PGU ist ein setup.py dabei, dass einfach einmal ausführen.
Danach sollte es kein Problem mehr geben.
Andernfalls kannst Du die Hauptdatein für PGU in dein Python ordner mit rein Kopieren unter "\Lib\site-packages", hat bei mir geholfen gehabt.
Ponticus
User
Beiträge: 6
Registriert: Freitag 4. Juli 2008, 15:16

OK, vielen Dank für eure guten Antworten, hat geklappt :)
Ponticus
User
Beiträge: 6
Registriert: Freitag 4. Juli 2008, 15:16

Ich habe jetzt allerdings noch eine weitere Frage zu pgu, die sich leider nicht mit den docs oder den examples beantworten lässt. Es wäre nett, wenn ihr mir hier auch noch helfen könntet. Und zwar: Ich würde das gui7 example, also das Beispiel wo verschiedene gui elemente dargestellt werden dahingehend bearbeiten, dass ich eine Texteingabe des Users in ein Textfeld als Variable erhalte und diese dann auch als Label für einen Button verwenden kann.
Beste Grüße,
Ponticus
nuss
User
Beiträge: 53
Registriert: Donnerstag 28. August 2008, 11:36

ich hab bisher noch nicht mit animationen unter pygame gearbeitet,
daher kann ich dir nur zeigen was mir spontan einfällt
obs dafür bessere wege gibt, weiß ich nicht.

Code: Alles auswählen

import pygame
from pygame import *

class Animation(pygame.sprite.Sprite):
  pictures = []
  def __init__(self, pictures, position, delay):
    pygame.sprite.Sprite.__init__(self)
    self.pictures.append([pygame.image.load(pic).convert() for pic in pictures])
    self.img_index = 0
    self.image = self.pictures[self.img_index]
    self.rect = self.image.get_rect()
    self.rect.topleft = position

    self._delay = delay
    self.last_update = 0

  def update(self, cur_time):
    if self.last_update + self._delay <= cur_time:
      self.last_update = cur_time
      self.img_index += 1
      if self.img_index == len(self.pictures): self.img_index = 0
      self.image = self.pictures[self.img_index]
      self.old_pos = self.rect.topleft
      self.rect = self.image.get_rect()
      self.rect.topleft = self.old_pos

pictures = ["/pfad/zu/bild1", "/pfad/zu/bild2", ...]
animationen = pygame.sprite.RenderUpdates()
animationen.add(Animation(pictures, (0, 0), 10))

screen = pygame.display.set_mode([100, 100])
background = pygame.Surface([100, 100])
background.fill([0, 0, 0])
while 1:
  animationen.clear(screen, background)
  animationen.update(pygame.time.get_ticks())
  rectlist = animationen.draw(screen)
  pygame.display.update(rectlist)
  pygame.time.delay(10)
müsste so oder so ähnlich funktionieren, hab den code jetzt nicht
überprüft.
vielleicht kannste ja was damit anfangen :)

achso, ich arbeite auch gerade an nem kleinen map-kreator für topdown rpgs :) vielleicht können wir ja zusammen was basteln
Ponticus
User
Beiträge: 6
Registriert: Freitag 4. Juli 2008, 15:16

Vielen Dank für deine nette Antwort, ich probiers gleich mal aus :)
Den Rest habe ich jetzt auch hingekriegt, nur bei den Textboxen von pgu bin ich noch etwas ratlos :oops:
Beste Grüße,
Ponitcus
Antworten