python学习之GUI(pygame键盘)

keys=pygame.key.get_pressed(),接受游戏中当前按下的所有按键,并把它们保存为一个列表,放在keys变量中

pygame.K_w告诉PyGame你在检查w键,通过修改最后的一个字母,你可以把它修改为任何你想要检查的按键

import pygame
pygame.init()
size=[400,300]
screen=pygame.display.set_mode(size)
clock=pygame.time.Clock()
done=False
while not done:
    keys=pygame.key.get_pressed()
    if keys[pygame.K_w]:
        print "hello"

    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            done=True
    clock.tick(32)
pygame.quit()

控制小球上下左右移动

import pygame
pygame.init()
size=[400,300]
screen=pygame.display.set_mode(size)
clock=pygame.time.Clock()
x=size[0]/2
y=size[1]/2
red=pygame.color.Color(‘#FF8080‘)
blue=pygame.color.Color(‘#8080FF‘)
white=pygame.color.Color(‘#FFFFFF‘)
black=pygame.color.Color(‘#000000‘)

done=False
while not done:
    screen.fill(black)
    keys=pygame.key.get_pressed()
    if keys[pygame.K_w]:
        y-=1
    if keys[pygame.K_s]:
        y+=1
    if keys[pygame.K_a]:
        x-=1
    if keys[pygame.K_d]:
        x+=1
    pygame.draw.circle(screen,red,[x,y],6)
    pygame.display.flip()

    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            done=True
    clock.tick(72)
pygame.quit()

注:防止小球出屏幕,加判断

import pygame
pygame.init()
size=[400,300]
screen=pygame.display.set_mode(size)
clock=pygame.time.Clock()
x=size[0]/2
y=size[1]/2
red=pygame.color.Color(‘#FF8080‘)
blue=pygame.color.Color(‘#8080FF‘)
white=pygame.color.Color(‘#FFFFFF‘)
black=pygame.color.Color(‘#000000‘)

def checkOffScreenX(x):
    if x>size[0]:
        x=0
    elif x<0:
        x=size[0]
    return x

def checkOffScreenY(y):
    if y>size[1]:
        y=0
    elif y<0:
        y=size[1]
    return y
done=False
while not done:
    screen.fill(black)
    keys=pygame.key.get_pressed()
    if keys[pygame.K_w]:
        y-=1
    if keys[pygame.K_s]:
        y+=1
    if keys[pygame.K_a]:
        x-=1
    if keys[pygame.K_d]:
        x+=1

    x=checkOffScreenX(x)
    y=checkOffScreenY(y)
    pygame.draw.circle(screen,red,[x,y],6)
    pygame.display.flip()

    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            done=True
    clock.tick(72)
pygame.quit()

完整游戏代码:

import random
import pygame
pygame.init()
size=[400,300]
screen=pygame.display.set_mode(size)
clock=pygame.time.Clock()
x=size[0]/2
y=size[1]/2
ballX=random.randrange(0,size[0])
ballY=random.randrange(0,size[1])
goalX=size[0]/2-10
goalY=size[1]/2-10
goalW=20
goalH=20
points=0
red=pygame.color.Color(‘#FF8080‘)
blue=pygame.color.Color(‘#8080FF‘)
white=pygame.color.Color(‘#FFFFFF‘)
black=pygame.color.Color(‘#000000‘)

def checkOffScreenX(x):
    if x>size[0]:
        x=0
    elif x<0:
        x=size[0]
    return x

def checkOffScreenY(y):
    if y>size[1]:
        y=0
    elif y<0:
        y=size[1]
    return y
def checkTouching():
    global x
    global ballX
    global y
    global ballY
    if -10<y-ballY<10 and -10<x-ballX<10:
        pygame.draw.circle(screen,white,[x,y],15)

        xDiff=x-ballX
        yDiff=y-ballY
        if ballX==0:
            xDiff-=5
        elif ballX==size[0]:
            xDiff+=5
        if ballY==0:
            yDiff-=5
        elif ballY==size[1]:
            yDiff+=5

        x+=xDiff*3
        ballX-=xDiff*3

        y+=yDiff*3
        ballY-=yDiff*3
        
done=False
while not done:
    screen.fill(black)
    pygame.draw.rect(screen,white,(goalX,goalY,goalW,goalH))

    
    keys=pygame.key.get_pressed()
    if keys[pygame.K_w]:
        y-=1
    if keys[pygame.K_s]:
        y+=1
    if keys[pygame.K_a]:
        x-=1
    if keys[pygame.K_d]:
        x+=1

    x=checkOffScreenX(x)
    y=checkOffScreenY(y)
    ballX=checkOffScreenX(ballX)
    ballY=checkOffScreenY(ballY)
    checkTouching()
    

    for point in range(points):
        pointX=0+point*5
        pygame.draw.rect(screen,white,(pointX,3,4,10))

    pygame.draw.circle(screen,red,[x,y],6)
    pygame.draw.circle(screen,blue,[ballX,ballY],6)

    if goalX<=ballX<=goalX+goalW and goalY<=ballY<=goalY+goalH:
        points+=1
        ballX=random.randrange(0,size[0])
        ballY=random.randrange(0,size[1])
    pygame.display.flip()

    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            done=True
    clock.tick(72)
pygame.quit()
print "Total points:  "+str(points)
时间: 2024-08-08 01:25:03

python学习之GUI(pygame键盘)的相关文章

python学习之GUI(pygame)

画一个圆形 FFFFFF是白色,000000是黑色 import pygame pygame.init() windowSize=[400,300] screen=pygame.display.set_mode(windowSize) pygame.display.set_caption("CircleGame") colour=pygame.color.Color("#FFFFFF") done=False while not done:     pygame.d

python学习之GUI(pygame鼠标)

鼠标的位置和其他PyGame的程序一样使用坐标来表示.坐标的值经常使用x和y变量来表示.左上角的坐标值是0,0,x和y的值随着鼠标的向右和向下的移动而增加. 打印鼠标左键点击位置 import pygame pygame.init() windowSize=[400,300] screen=pygame.display.set_mode(windowSize) clock=pygame.time.Clock() done=False while not done:     for event i

python学习之GUI

button按钮的生成: import Tkinter as tk window=tk.Tk() def buttonClick():     print "Beep!" button=tk.Button(window,text="Click me!",command=buttonClick) button.pack() window.mainloop() 同理将方法改为改变按钮上的文字 import Tkinter as tk window=tk.Tk() def

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho

python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典

python学习笔记2--python文件类型.变量.数值.字符串.元组.列表.字典 一.Python文件类型 1.源代码 python源代码文件以.py为扩展名,由pyton程序解释,不需要编译 [[email protected] day01]# vim 1.py #!/usr/bin/python        print 'hello world!' [[email protected] day01]# python 1.py hello world! 2.字节代码 Python源码文件

Python 学习参考书目推荐

Python 学习,参考书目推荐 前言 好的技术书籍可以帮助我们快速地成长,大部分人或多或少地受益于经典的技术书籍.在「Python开发者」微信公号后台,我们经常能收到让帮忙推荐书籍的消息.这类的问题在@Python开发者 微博 和 伯乐在线的 Python小组 讨论中也不绝于耳. 7月3日,伯乐在线在「Python开发者」微信公号发起了一个讨论 (注:PC端无法看到大家的评论,需要关注微信公号后,从微信才可以看到),通过这个讨论话题,在评论中分享对自己帮助很大的Python技术书籍.  (Py

Python学习之路-Day1-Python基础

Python学习之路第一天 学习内容: 1.Python简介 2.安装 3.第一个Python程序 4.变量 5.字符编码 6.用户输入 7.表达式if..else语句 8.表达式for语句 9.break和continue 10.while循环 11.字符串格式化 1.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOB

python学习—-day1.计算机基础

python学习-day1.计算机基础 一.计算机系统的硬件组成部分:电脑的三大件:内存.硬盘.cpu 二.编程语言的作用及操作系统和硬件的关系:答:1.编程语言的作用是与计算机沟通,并且可以用编程语言在操作系统上写程序,从而达到开发应用软件的目的2.操作系统是用来管理计算机硬件资源的 三.应用程序->操作系统->硬件:在硬件之上装操作系统,在操作系统上装应用程序1.应用程序是指程序员开发的可运行的软件2.操作系统的目的是用来管理计算机硬件的3.硬件:cpu.硬盘.内存.键盘.鼠标统称为电脑硬

Python之路【第二十四篇】:Python学习路径及练手项目合集

Python学习路径及练手项目合集 Wayne Shi· 2 个月前 参照:https://zhuanlan.zhihu.com/p/23561159 更多文章欢迎关注专栏:学习编程. 本系列Python技术路径中包含入门知识.Python基础.Web框架.基础项目.网络编程.数据与计算.综合项目七个模块.路径中的教程将带你逐步深入,学会如何使用 Python 实现一个博客,桌面词典,微信机器人或网络安全软件等.完成本路径的基础及项目练习,将具备独立的Python开发能力. 完整的Python学