Hallo zusammen,
ich möchte in einem Spiel (mit Pygame) dem Anwender ermöglichen sich in einer Highscore_Liste einzutragen.
Wer kann helfen?
Gruß Volker.
Eingabe durch Anwender
-
- User
- Beiträge: 20
- Registriert: Sonntag 8. Februar 2009, 10:23
- Wohnort: Lüdenscheid
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Die Liste natürlich:Volker Schulte hat geschrieben:Wer kann helfen?
Code: Alles auswählen
highscores = list()
highscores.append(('Leonidas', 500))
highscores.append(('Volker Schulte', 499))
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
@Leonidas: Ich denke mal es ist eher gemeint, wie man die Namenseingabe in Pygame bewerkstelligt.
Ausserdem würde ich die Werte in den Tupeln vertauschen -- lässt sich dann leichter sortieren.
Ausserdem würde ich die Werte in den Tupeln vertauschen -- lässt sich dann leichter sortieren.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Was ich damit andeuten wollte war ja dass nicht klar wird was der OP überhaupt machen will. In solchen Fällen ist es mir als potenziell Antwortenden zu blöd zu erraten was denn überhaupt gemeint ist.BlackJack hat geschrieben:@Leonidas: Ich denke mal es ist eher gemeint, wie man die Namenseingabe in Pygame bewerkstelligt.
Highscores würde ich aber generell wohl eher mit Objekten verwalten. Name, Datum, Score plus eventuell weitere Informationen die bei so einem Spiel anfallen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 20
- Registriert: Sonntag 8. Februar 2009, 10:23
- Wohnort: Lüdenscheid
Hier eine mögliche Lösung:
Gruß Volker
Code: Alles auswählen
#! /usr/bin/env python
# import pdb
import os, sys
import pygame
from pygame.locals import *
if not pygame.font: print 'Warning, fonts disabled'
if not pygame.mixer: print 'Warning, sound disabled'
class PyManMain:
"""The Main PyMan Class - This class handles the main
initialization and creating of the Game."""
def __init__(self, width=640,height=480):
"""Initialize"""
"""Initialize PyGame"""
pygame.init()
"""Set the window Size"""
self.width = width
self.height = height
"""Create the Screen"""
self.screen = pygame.display.set_mode((self.width
, self.height))
def MainLoop(self):
"""Create the background"""
self.background = pygame.Surface(self.screen.get_size())
self.background = self.background.convert()
self.background.fill((0,0,0))
String =""
taste =-1
# Taste Nummer 13 entpricht der Eingabetaste
while taste<>13:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == KEYDOWN:
taste = event.key
# taste 32 ist die Leertaste
if not (pygame.key.get_mods() & (KMOD_ALT | KMOD_CTRL | KMOD_META)):
if taste ==32 or (taste >96 and taste <123) or (taste >47 and taste <58):
Zeichen = chr(taste)
#print pygame.key.get_mods()
if pygame.key.get_mods() & (KMOD_SHIFT | KMOD_CAPS) :
Zeichen = Zeichen.upper()
String +=Zeichen
elif taste ==8 and len(String)>0:
String = String[:-1]
#print String;
"""Do the Drawging"""
self.screen.blit(self.background, (0, 0))
if pygame.font:
font = pygame.font.Font(None, 36)
text = font.render("Name: %s" % String
, 1, (255, 0, 0))
textpos = (10,10)
# Textposition mittig (wird nicht benoetigt) :
#textpos = text.get_rect(centerx=self.background.get_width()/2)
self.screen.blit(text, textpos)
pygame.display.flip()
if __name__ == "__main__":
MainWindow = PyManMain(500,575) # Bildschirmgroesse darstellen
MainWindow.MainLoop()
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Sag mal was sollen denn die gut verteilten Multi-Line Strings? Den Leser zum Nachdenken animieren? Oder eine Kennzeichnung besonders wichtiger Kommentare, da die Strings anders gehighlightet werden?
Wenn du davon ausgehst, dass das Docstrings sind, liegst du falsch, das ist nur der erste String eines Blocks.
Ein paar Leerzeilen weniger wärn auch nicht schlecht.
Wenn du davon ausgehst, dass das Docstrings sind, liegst du falsch, das ist nur der erste String eines Blocks.
Ein paar Leerzeilen weniger wärn auch nicht schlecht.