pygame是用来写2D游戏的。

实现斜线运动,无非是在x和y两个方向上分运动的合成。x方向上的运动,当撞到边界的时候取相反速度就好了。

这里是用网球王子中的图片,以及一个网球实现,效果截图:

注意看,那个方块形状的网球是会动的,撞到边界就反弹,时刻匀速(这情况太理想了。。。)

代码:

# coding:utf-8
bgimg = 'teni.jpg'
spimg = 'ball.jpg' import pygame
from pygame.locals import *
from sys import exit pygame.init()
screen = pygame.display.set_mode((640, 480), 0, 32) bg = pygame.image.load(bgimg).convert()
sp = pygame.image.load(spimg).convert_alpha() clock = pygame.time.Clock() x, y =100., 100.
speed_x, speed_y = 133., 170. while True:
for event in pygame.event.get():
if event.type == QUIT:
exit() screen.blit(bg, (0, 0))
screen.blit(sp, (x, y)) time_passed = clock.tick(30) # 设定最大FPS不超过30
# FPS:Frame per second
time_passed_seconds = time_passed / 1000.0 x += speed_x * time_passed_seconds
y += speed_y * time_passed_seconds if x > 640 - sp.get_width():
speed_x = -speed_x
x = 640 - sp.get_width()
elif x < 0:
speed_x = - speed_x
x = 0. if y > 480 - sp.get_height():
speed_y = -speed_y
y = 480 - sp.get_height()
elif y < 0:
speed_y = -speed_y
y = 0 pygame.display.update()

  

【转载】pygame的斜线运动的更多相关文章

  1. pygame入门

    pygame入门 说明 在学习pygame时,主要参考了目光博客的教程.目光博客 原教程是2011年写的,年代比较久远了,使用Python2.我学习时使用python3将代码重新实现了一遍,同时补充了 ...

  2. 下板不动, 上板匀速平板间流动(Crank-Nicolson格式)【转载】

    摘自<FLUENT流体工程仿真计算实例与分析>,程序略有修改 两个间距为1cm水平平板,如下图所示: 上板匀速平板间流动(Crank-Nicolson格式)[转载]"> 充 ...

  3. 下板不动, 上板匀速平板间流动(c++)【转载】

    摘自<FLUENT流体工程仿真计算实例与分析>,程序略有修改 两个间距为1cm水平平板,如下图所示: 上板匀速平板间流动(c++)[转载]" title="下板不动,  ...

  4. 巧用HTML5给按钮背景设计不同的动画

      如何巧用HTML5设计按钮背景不同动画特效,在该特效中,当鼠标滑过按钮时,使用CSS3   animation 来动画   background-size  和  background-posit ...

  5. JavaScript动画相关

    JS动画原理 通过CSS缓慢变化从而实现动画效果 获取css属性 Window.getComputedStyle()方法返回一个对象,该对象在应用活动样式表并解析这些值可能包含的任何基本计算后报告元素 ...

  6. 2015/11/4用Python写游戏,pygame入门(4):获取鼠标的位置及运动

    按昨天的说法,今天将开始做一个简单的游戏了. 目标是拷贝微信的飞机大战,当然拷贝完以后大家就具备自己添加不同内容的能力了. 首先是要拿到一些图片素材,熟悉使用图像处理软件和绘画的人可以自己制作,并没有 ...

  7. pygame初步(一)绘制一个运动的矩形

    <More Python Programming for the Absolute Beginner>一书中的第二章练习3(P33) 使用Python的Pygame库 import sys ...

  8. 【转载】pygame安装与两种版本的Python兼容问题

    在开始学习游戏编程之前,我们先来安装下pygame和python3.2.5 参考园友: http://www.cnblogs.com/hongten/p/hongten_pygame_install. ...

  9. python编程学习--Pygame - Python游戏编程入门(0)---转载

    原文地址:https://www.cnblogs.com/wuzhanpeng/p/4261015.html 引言 博客刚开,想把最近学习的东西记录下来,算是一种笔记.最近打算开始学习Python,因 ...

随机推荐

  1. window10+Anaconda3-4.2+python3.5+Pycharm+清华镜像源安装

    window下对python3.5适用性比较好,Anaconda4.2里面包含了python3.5. https://mirrors.tuna.tsinghua.edu.cn/anaconda/arc ...

  2. Git和Github入门

    推文:官方手册,十分详细 推文:git和github快速入门 一.git使用 1.git安装 (1)windows 网站:https://git-scm.com/download/win下载安装即可 ...

  3. python sqlite3 入门 (视频讲座)

    python sqlite3 入门 (视频讲座) an SQLite mini-series! - Simple Databases with Python 播放列表: YouTube https:/ ...

  4. spring-boot添加自定义拦截器

    spring-boot中的WebMvcConfigurerAdapter类提供了很多自定义操作的方法,先贴出来大家看看 package org.springframework.web.servlet. ...

  5. 【51nod】1766 树上的最远点对

    [题意]给定n个点的树,m次求[a,b]和[c,d]中各选出一个点的最大距离.abcd是标号区间,n,m<=10^5 [算法]LCA+树的直径理论+线段树 [题解] 树的直径性质:距离树上任意点 ...

  6. shell脚本安装部署反向代理 监控进程 计划任务

    1.编写脚本自动部署反向代理.web.nfs: 要求: I.部署nginx反向代理三个web服务,调度算法使用加权轮询: 反向代理服务器脚本配置脚本 #!/bin/bash #安装eple和nginx ...

  7. HDU 2062 Subset sequence (找规律)

    题目链接 Problem Description Consider the aggregate An= { 1, 2, -, n }. For example, A1={1}, A3={1,2,3}. ...

  8. 解决windows文件夹不能自动刷新的问题

    我用的是win7系统,最近忽然发现我的文档文件夹里的文件不能自动刷新了,就是当剪切或删除某个文件后,文件夹里的文件没有变化,看起来文件还在原文件夹中,只有通过手动刷新后才能看到效果,该如何解决? 网上 ...

  9. 关于Java的“找不到或无法加载主类”

    Java编程思想4th第六章的关于访问权限和包的笔记总结时遇到了一个关于package命名及导入的问题. 环境:Ubuntu 16.04.3 LTS x86_64 首先,我要安装部署Java的开发环境 ...

  10. spring-boot-全局异常

    Spring Boot默认的异常处理机制 默认情况下,Spring Boot为两种情况提供了不同的响应方式. 一种是浏览器客户端请求一个不存在的页面或服务端处理发生异常时,一般情况下浏览器默认发送的请 ...