2017-10-18 4 views
0

Ich versuche ein einfaches Spiel zu erstellen, wo ein Benutzer ein 'X' über den Bildschirm bewegt, um zu versuchen, ein 'O' zu bekommen. Es erfordert, dass ich die Pfeile benutze (oben, unten, links, rechts) und ich weiß nicht, wie ich das programmieren soll. Ich habe mich online umgesehen und verschiedene Beispiele gesehen, wie zum Beispiel curses, getch, sys, pygame, aber entweder sind sie zu kompliziert oder sie funktionieren nicht auf meinem Computer.Ich erhalte eine Tastendruck-Eingabe von Python-Benutzer

Könnte jemand ein vollständiges Beispiel und eine Erklärung zur Verfügung stellen, wie man einen Tastendruck in Python erkennt, etwas wie. Auch müssen mit einem Spielschirm helfen, speziell, etwas an einem bestimmten Ort Druck liegt (0,0), die Art wie wie Schildkröte beginnt bei (0,0) Zeichnung:

userposy = 0 (y position of the 'X') 
*print 'X' at (0, userposy)* 
while True: 
    char = *detect what key is pressed* 
    if char == *down arrow*: 
     userposy -= 1. 
    *print 'X' at (0, userposy)* 
+0

Mögliches Duplikat [Python keypress einfaches Spiel] (https://stackoverflow.com/questions/44002474/python-keypress-simple-game) – bendl

+0

Erkennen von Tastenfolgen variiert, je nachdem, welches O du bist verwenden. Das ist der Grund, warum Leute das normalerweise mit Bibliothekscode tun, damit sie sich nicht um die unordentlichen Details kümmern müssen. –

Antwort

1

Versuchen Sie sich mit Pygame! Es kümmert sich um alle wesentlichen Details und bietet Ihnen eine einfache Schnittstelle für die Benutzereingabe für Spiele:

https://www.pygame.org/news

(Was ich sagen will ist, dass diese wahrscheinlich der Weg des geringsten Widerstandes ist. ich konnte zwar falsch sein)

+0

Das OP erwähnte, dass sie sich Pygame angesehen haben. Aber vielleicht sollten sie einen zweiten Blick darauf werfen. ;) –

+0

Ja, darauf habe ich mit dieser Antwort angespielt. –

0

ich glaube, das tut, was Sie Python Schildkröte beschreiben mit:

from turtle import Turtle, Screen 

FONT_SIZE = 24 
FONT = ('Arial', FONT_SIZE, 'normal') 

def tortoise_down(distance=1): 
    screen.onkeypress(None, "Down Arrow") # disable event hander in event hander 
    tortoise.forward(distance) 
    display.undo() # erase previous distance 
    display.write('X at {:.1f}'.format(tortoise.ycor()), align='center', font=FONT) 
    screen.onkeypress(tortoise_down, "Down") # (re)enable even handler 

screen = Screen() 
screen.setup(500, 500) 

display = Turtle(visible=False) 
display.speed('fastest') 
display.penup() 
display.goto(0, screen.window_height()/2 - FONT_SIZE * 2) 
display.write('', align='center', font=FONT) # garbage for initial .undo() 

tortoise = Turtle('turtle') 
tortoise.speed('fastest') 
tortoise.setheading(270) 
tortoise.penup() 

tortoise_down(0) # initialize display and event handler 

screen.listen() 
screen.mainloop() 

klicken Sie zuerst auf das Fenster, um es dem Zuhörer zu machen. Dann können Sie einzelne Abwärtspfeile drücken oder gedrückt halten und (nach einer kleinen Verzögerung) wird es automatisch wiederholt.

enter image description here

Verwandte Themen