python pygame实现方向键控制小球

最后一个项目用到了pygame,  实现方向键控制小球,对于模块不熟悉的我还是查询了一些资料介绍。

import sys
import pygame
from pygame.locals import *

def control_ball(event):
 speed = [x,y] =[0,0]# 设置相对位移
 speed_offset = 1 #小球的速度

# 如果事件的类型是 键盘输入,就根据方向键来求出速度的方向(默认是从左往右为1,从上往下为1)
 if event.type == KEYDOWN:
  if event.key == pygame.K_LEFT:
   speed[0] -= speed_offset
   print event.key

  if event.key == pygame.K_RIGHT:
   speed[0] = speed_offset
   print event.key

  if event.key == pygame.K_UP:
   speed[1] -= speed_offset
   print event.key

  if event.key == pygame.K_DOWN:
   speed[1] = speed_offset
   print event.key
#如果没有方向键的输入,则速度为0,小球不动
 if event.type in (pygame.K_UP, pygame.K_LEFT, pygame.K_RIGHT, pygame.K_DOWN):
  speed = [0,0]

 return speed

#主函数
def play_ball():
 pygame.init()#初始化
 window_size = Rect(0,0,800,640)#设置窗口的大小

 screen = pygame.display.set_mode(window_size.size)#设置窗口模式
 pygame.display.set_caption('hello')#设置窗口标题
 ball_image = pygame.image.load('ball.bmp')#载入小球图片
 back_image = pygame.image.load('ball1.bmp')#载入背景图片
 ball_rect = ball_image.get_rect()# 获取小球图片所在的区域

 while True:
#退出事件的处理
  for event in pygame.event.get():
   if event.type == QUIT:
    sys.exit()

  control_speed = control_ball(event)#获取到小球的方向
  ball_rect = ball_rect.move(control_speed).clamp(window_size)#小球按照方向移动,并且不会移出窗口。

  screen.blit(back_image,(0,0))#设置窗口背景,位于(0,0)处,窗口左上角。
  screen.blit(ball_image, ball_rect)#把小球绘制到背景surface上。

  pygame.display.flip()#更新窗口内容

if __name__ == '__main__':
 play_ball() 

pygame模块的第一件事就是初始化其模块,pygame.init()。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python GUI实现小球满屏乱跑效果

    本文实例为大家分享了python GUI实现小球满屏乱跑效果的具体代码,供大家参考,具体内容如下 学习tkinter有一段时间了,综合运用一下,做一个类似屏保类的东西,碰到屏幕边缘就反弹回来的那种. 初级篇:上下单向移动 from tkinter import * import random import time # #创建一个类,这个类含有两个参数,一个是画布,一个是球的颜色 # class Ball: def __init__(self,canvas,color): self.canvas

  • python开发的小球完全弹性碰撞游戏代码

    完成这个小球的完全弹性碰撞游戏灵感来自于: 下面是我花了一周下班时间所编写的一个小球完全弹性碰撞游戏: 游戏初始化状态: 最下面的游标和修改小球的移动速度 源码部分: 复制代码 代码如下: #python tkinter#python version 3.3.2 from tkinter import * '''    判断    两个小球    {        圆心:A(x1,y1)  半径:r  X轴速度:Vax  Y轴速度:Vay        圆心:B(x2,y2)  半径:R  X轴

  • python3 pygame实现接小球游戏

    本文实例为大家分享了python3 pygame接小球游戏的具体代码,供大家参考,具体内容如下 操作方法:鼠标操作 截图: 直接放代码: # -*- coding:utf-8 -*- import sys,pygame,random #导入库 from pygame.locals import * def print_text(font,x,y,text,color=(255,255,255)): imgText = font.render(text,True,color) # 创建字体,三个参

  • python3实现小球转动抽奖小游戏

    最近老师在讲 tkinter,所以我做了一个抽奖小游戏. 一.效果图 先上效果图.红色的小球会围绕蓝色小球做环形运动.我设置的四个角是奖品,其余的都是再接再厉. 二.方法 基于tkinter中的button,text,PIL ,time.Canvas drawPath():用于画蓝色的小球 Ball类 初始化画布.运动小球大小.运动的起点. ball类->draw() 控制小球的运动.这里用到一个方法叫canvas.coords.这个方法可以获取运动小球当前在画布上的坐标.并返回一个数组.比如

  • Python解决抛小球问题 求小球下落经历的距离之和示例

    本文实例讲述了Python解决抛小球问题 求小球下落经历的距离之和.分享给大家供大家参考,具体如下: 问题: 小东和三个朋友一起在楼上抛小球,他们站在楼房的不同层,假设小东站的楼层距离地面N米,球从他手里自由落下,每次落地后反跳回上次下落高度的一半,并以此类推知道全部落到地面不跳,求4个小球一共经过了多少米?(数字都为整数) 给定四个整数A,B,C,D,请返回所求结果 测试样例: 100,90,80,70 返回:1020 实现代码: class Balls: def calcDistance(s

  • python实现小球弹跳效果

    本文实例为大家分享了python实现小球弹跳效果的具体代码,供大家参考,具体内容如下 import pygame, sys pygame.init() screenGameCaption = pygame.display.set_caption("Ball game") screen = pygame.display.set_mode([680, 480]) screen.fill([255, 255, 255]) x = 50 y = 50 x_speed = 10 y_speed

  • python3.6使用tkinter实现弹跳小球游戏

    本文实例为大家分享了python3.6实现弹跳小球游戏的具体代码,供大家参考,具体内容如下 import random import time from tkinter import * #下面定义一个球的类,有canvas和color两个对象 class Ball: #定义一个Ball类的函数 def __init__(self,canvas,paddle,color):#这是Ball类的属性函数,Ball类下的函数都有这些性质 self.canvas=canvas self.paddle=p

  • python实现弹跳小球

    前言 学习Python的过程中,比较喜欢通过实际的小项目进行巩固学习,决定写一个弹跳小球的程序.这个实战例程是在公众号上看到的,他的编写过程比较完整,步骤清晰,贴的代码并不完整,但是我还是决定尝试一下,在尝试的过程中由于自己的基础知识并没有学到类这里,所以是在摸索的阶段,一边学习基础知识,一边编写这个例程,最终还是把它给完成了,虽然后面在网上看到了代码,幸好没有提前看到,这一天中我还是学习到了很多. 创建窗口 from tkinter import Tk import tkinter impor

  • python pygame实现方向键控制小球

    最后一个项目用到了pygame,  实现方向键控制小球,对于模块不熟悉的我还是查询了一些资料介绍. import sys import pygame from pygame.locals import * def control_ball(event): speed = [x,y] =[0,0]# 设置相对位移 speed_offset = 1 #小球的速度 # 如果事件的类型是 键盘输入,就根据方向键来求出速度的方向(默认是从左往右为1,从上往下为1) if event.type == KEY

  • java通过方向键控制小球移动的小游戏

    本文需求实现了java通过方向键控制小球移动的具体过程,供大家参考,具体内容如下 需求分析: 第一 要画出一个小球 第二 要能通过控制方向键控制它的移动 第一部分的实现 1.首先要画一个大窗体 public class BallMove extends JFrame 在开发Java应用程序时,通常情况下利用JFrame创建大窗口.利用JFrame创建的窗口分别包含一个标题.最小化按钮.最大化按钮和关闭按钮 用主类去继承JFrame类就可以使用它的方法啦 2.接着用一个类来继承JPanel 如果说

  • Python Pygame实现可控制的烟花游戏

    目录 实现效果描述 效果 代码地址 解析 main.py core.py fireworks.py 写在最后 自控烟花升空 实现效果描述效果代码地址解析main.pycore.pyfireworks.py 写在最后 实现效果描述 这大过年的不弄点有意思的怎么行呢?可以考虑用编程实现一个烟花升空-爆炸-绚丽地效果.随机的烟花也玩习惯了,这次我们用pygame实现用户鼠标点击屏幕实现放烟花并在指定高度绽放~ 效果 鼠标点击时,烟花点会从屏幕底部正中心发射至鼠标点击点处并绽放出随机的颜色,烟花颗粒符合

  • python方向键控制上下左右代码

    本文所示代码实现python编程方向键控制图片上下左右,我们首先看下演示结果. 演示: 实例代码: bif="1.jpg" mif="2.jpg" import pygame,sys from pygame.locals import * pygame.init() screen=pygame.display.set_mode((640,360),0,32) background=pygame.image.load(bif).convert() mouse_c=py

  • python pygame实现控制物体移动

    本文实例为大家分享了python pygame控制物体移动的具体代码,供大家参考,具体内容如下 import pygame import sys from pygame.locals import * pygame.init() size = width,hight = 600,400 speed = [-2,1] by = (255,255,255) screen = pygame.display.set_mode(size) pygame.display.set_caption("移动皮卡丘

  • Python+Pygame绘制小球的实例详解

    目录 1.准备工作 2.开始制作 1.创建一个小球 2.创建逐渐变大的小球 3.创建一个自由下落的小球 4.用if语句实现循环下落 5.做一个循环上下反弹的小球 1.准备工作 1.在文件里找到设置 2.在项目里找到python解释器,点击右边的加号 3.搜素pygame并安装 同理下载pgzero安装包 2.开始制作 1.创建一个小球 代码 import pgzrun def draw(): screen.fill('green') screen.draw.filled_circle((400,

  • 教你利用pygame模块制作跳跃小球小游戏

    前言 pygame是用来开发游戏的一套基于SDL的模板,它可以是python创建完全界面化的游戏和多媒体程序,而且它基本上可以在任何系统上运行.本文将详细介绍你利用pygame模块制作跳跃小球小游戏的相关内容,下面来一起看看吧 实现方法 首先创建一个游戏窗口,然后再窗口内创建一个小球.以一定的速度移动小球,当小球碰到游戏窗口的边缘时,小球弹回,继续移动.可以按照如下步骤实现该功能. (1)首先来创建一个游戏窗口,宽和高设置为640×480.代码如下: import sys #导入sys模块 im

  • 教你用Python pygame设置窗口标题和图标

    窗口标题 pygame.display.set_caption(title, icontitle=None) ''' • title设置窗口的标题内容 • icontitle设置图表化后的小标题 † 小标题可选,部分系统没有,一般不设置 ''' pygame.display.get_caption() ''' • 返回当前设置窗口的标题及小标题内容 • 返回结构为(title, icontitle) • 该函数与游戏交互逻辑配合,可以根据游戏情节修改标题内容 ''' 设置图标 pygame.di

  • Python Pygame实战之飞机大战的实现

    目录 导语 一.环境安装 1)各种素材(图片.字体等) 2)运行环境 二.代码展示 1)文章思路 2)附代码讲解 3)主程序 三.效果展示 总结 导语 三月疫情原因,很多地方都封闭式管理了! 在回家无聊的打酱油,小编今天给大伙带来了一波小游戏——全民左右飞机大战!在这个快熬不下去的日子里,打打飞机消遣闲暇时间,也是蛮惬意的,这几天小编必须全身心投入到飞机大战中来!肝了几天这款小游戏终于面市啦! 这次的游戏操作很简单,就是左右移动飞机,躲避敌人飞机,打落敌机会随机掉落金币,我们 要打击的敌人!每个

  • python pygame实现球球大作战

    本文实例为大家分享了python pygame球球大作战的具体代码,供大家参考,具体内容如下 球球大作战:(大球吃小球,代码如下:) from random import randint,randrange import pygame from math import sqrt,pi class Ball(object): def __init__(self, center, color, radius, sx, sy): self._center = center self._color =

随机推荐