初学者,有问题大家一起交流

import random
import pygame
from pygame.locals import *
import sys
import math;
import pygame.freetypeclass Game:def __init__(self):pygame.init()self.W, self.H = 800, 600;self.screen = pygame.display.set_mode((self.W, self.H))pygame.display.set_caption("Window");self.ball = pygame.image.load("./image/04.jpg");# 设置碳板的宽度self.leng = 140;# 设置碳板的初始坐标self.left = 0;self.right = self.left + self.leng;# 圆心的初始位置:self.cirx = random.randint(20, self.W - 20);self.ciry = random.randint(35, self.H - 55);# flagself.flag = 1;self.to = "r";self.cnt = 1;# 设置帧速率:self.fpsClock = pygame.time.Clock();self.fps = 60;# 设置检测时间pygame.key.set_repeat(10, 15);# 背景音乐pygame.mixer.init()pygame.mixer.music.load("./sing/01.mp4");pygame.mixer.music.play(-1)# 设置速度self.stspeed = 2;self.ti = 0;# 设置成绩列表self.score = [0];self.maxscore=0;# 绘制文字pygame.font.init();self.str1="您目前的最高得分为:{}".format(self.maxscore);self.a = pygame.font.SysFont("kaiti", 36);self.num1 = self.a.render("重新开始", True, (0, 0, 0));self.num2 = self.a.render("退出游戏", True, (0, 0, 0));self.num3=self.a.render(self.str1,True,(0,0,0));#游戏开关self.ok=1;#获取鼠标位置self.x=0;self.y=0;def listen(self):#求最大分数for i in self.score:if i>self.maxscore:self.maxscore=i;self.str1="您目前的最高得分为:{}".format(self.maxscore);self.num3 = self.a.render(self.str1, True, (0, 0, 0));for event in pygame.event.get():if event.type == QUIT:sys.exit()# 底部碳板的移动轨迹elif event.type == pygame.KEYDOWN:if event.key == pygame.K_a:  # 左if self.left <= -70:break;else:self.left -= 5;self.right -= 5;elif event.key == pygame.K_d:  # 右if self.right >= self.W + 70:break;else:self.left += 5;self.right += 5;elif event.type==pygame.MOUSEBUTTONUP:(self.x,self.y)=pygame.mouse.get_pos();# 球的移动轨迹if self.ti % 1000 == 0 and self.stspeed < 12:self.stspeed += 1;if self.flag == 1:  # 第一次下降状态self.ti += 2;self.ciry += 2;if self.ciry < 573 and self.ciry > 559 and self.cirx >= self.left and self.cirx <= self.right:self.flag = 2;  # 打在板上if self.ciry > self.H:self.flag = 0;print("lose");elif self.flag == 2:  # 上升状态               不用改变状态self.ti += 2;if self.to == "r":self.ciry -= self.stspeed;self.cirx += self.stspeed;elif self.to == "l":self.ciry -= self.stspeed;self.cirx -= self.stspeed;if self.ciry <= 12.5 and self.cirx > 20 and self.cirx < self.W - 20:self.flag = 3;  # 打在上面反弹;if self.cirx <= 20 or self.cirx >= self.W - 20:self.flag = 5;  #if self.ciry > self.H:self.flag = 0;print("lose");elif self.flag == 3:  # 第一次以后的下降墙上       不需要改变状态self.ti += 2;if self.to == "r":self.ciry += self.stspeed;self.cirx += self.stspeed;elif self.to == "l":self.ciry += self.stspeed;self.cirx -= self.stspeed;if self.ciry < 573 and self.ciry > 559 and self.cirx >= self.left and self.cirx <= self.right:self.flag = 2;  # 打在板上if self.cirx <= 20 or self.cirx >= self.W - 20:self.flag = 4;  # 打在墙体上;if self.ciry > self.H:self.flag = 0;print("lose");elif self.flag == 4:  # 从上面打到墙上self.ti += 2;if self.cnt == 1:self.cnt -= 1;if self.to == "r":self.to = "l";elif self.to == "l":self.to = "r";else:if self.to == "r":self.ciry += self.stspeed;self.cirx += self.stspeed;elif self.to == "l":self.ciry += self.stspeed;self.cirx -= self.stspeed;# if self.cirx <= 20 or self.cirx >= self.W - 20:# self.flag = 4;  # 打在墙体上;if self.ciry < 573 and self.ciry > 559 and self.cirx >= self.left and self.cirx <= self.right:self.cnt += 1;self.flag = 2;  # 打在板上if self.ciry > self.H:self.flag = 0;print("lose");elif self.flag == 5:  # 从下面达到墙上self.ti += 2;if self.cnt == 1:self.cnt -= 1;if self.to == "r":self.to = "l";elif self.to == "l":self.to = "r"else:if self.to == "r":self.ciry -= self.stspeed;self.cirx += self.stspeed;elif self.to == "l":self.ciry -= self.stspeed;self.cirx -= self.stspeed;# if self.cirx <= 20 or self.cirx >= self.W - 20:#   self.flag = 5;  # 打在墙体上;if self.ciry <= 12.5 and self.cirx > 20 and self.cirx < self.W - 20:self.cnt += 1;self.flag = 3;  # 打在上面反弹;if self.ciry > self.H:self.flag = 0;print("lose");elif self.flag == 0:self.score.append(self.ti);pygame.mixer.music.stop();self.screen.blit(self.num3,(250,200));self.screen.blit(self.num1, (300, 300));self.screen.blit(self.num2, (300, 400));if self.x>300 and self.x<440 and self.y>300 and self.y<330:self.x=0;self.y=0;self.left = 0;self.cnt = 1;self.right = self.left + self.leng;self.cirx = random.randint(20, self.W - 20);self.ciry = random.randint(35, self.H - 55);self.flag=1;self.ti=0;self.to="r";pygame.mixer.music.play();self.stspeed=2;elif self.x>300 and self.x<440 and self.y>400 and self.y<430:sys.exit()def draw(self):self.screen.fill((255, 255, 255))# 渲染背景图片self.ball = pygame.transform.scale(self.ball, (self.W, self.H));self.screen.blit(self.ball, (0, 0));# 画顶部直线pygame.draw.line(self.screen, (255, 0, 0), (0, 10), (self.W, 10), 5);# 画底部碳板pygame.draw.line(self.screen, (0, 0, 0), (self.left, self.H), (self.right, self.H), 30);# 画弹弹球pygame.draw.circle(self.screen, (130, 130, 130), (self.cirx, self.ciry), 20, 20);def run(self):while self.ok:self.draw()self.listen()self.fpsClock.tick(self.fps);pygame.display.update()if __name__ == '__main__':game = Game()game.run();

pygame制作简单小游戏相关推荐

  1. 【游戏思路】制作简单小游戏实现思路总结

    很多小伙伴在制作游戏的时候苦于没有思路,实际上制作一个游戏是很简单的,我们可以先从小游戏开始思考. 小游戏的概念和分类 概念:单机或联机类型,操作简单,效果简单,体积不大,玩法单一类型. 特点:体积小 ...

  2. Python小游戏——Pygame制作2048小游戏

    pygame之2048小游戏 初学python,发现看网上的python理论太过枯燥. 哎嘿~~干脆直接弄个小游戏叭,一边学习,一边写代码. 备注: 1.很多地方我尽量注解,方便大家观看. 2.完整代 ...

  3. 使用Pygame制作2048小游戏

    好久没有写文章了,暑假一直没有怎么学习计算机方面的相关知识,不过倒是坚持背了一个多月的单词红宝书,看了汤神的基础课.真的没想到自己居然也能有毅力背了150多页的单词,还写完了一本正反面的字帖这些事以前 ...

  4. python手机版做小游戏代码大全-python简单小游戏代码 怎么用Python制作简单小游戏...

    1.Python猜拳小游戏代码: 2.import random #导入随机模块 3. 4.num = 1 5.yin_num = 0 6.shu_num = 0 7.while num <= ...

  5. python小游戏代码大全-python简单小游戏代码 怎么用Python制作简单小游戏

    1.Python猜拳小游戏代码: 2.import random #导入随机模块 3. 4.num = 1 5.yin_num = 0 6.shu_num = 0 7.while num <= ...

  6. Python Pygame制作简单五子棋游戏(详细代码+解释)

    这里只想简单演示下一个简单的五子棋界面和落子等操作,主要为了后面设计AI对战方便演示,AI算法后面设计吧,最近事太多了,,,,. 希望本文有助于你制作自己期望的简单的五子棋. 一.pygame初始化画 ...

  7. python经典教程游戏_使用pygame制作经典小游戏:五子棋

    准备 python基础相关准备: pygame的基础知识,参考目光博客的"用Python和Pygame写游戏-从入门到精通" 安装python 3.8.0 在python官网下载, ...

  8. python pygame 简单小游戏

    python pygame 简单小游戏 最近学习了pygame,感觉十分有意思,花了一点时间制作了一个简单的小游戏 效果图 这是一个很简单的防守类小游戏 玩家可以使用wasd控制人物移动,并且鼠标控制 ...

  9. 基于pygame的射击小游戏制作(一)让飞船动起来

    基于pygame的射击小游戏制作(一)让飞船动起来 一.文件结构 alien_invasion.py 是整个系统的主文件,用来创建游戏中的一系列对象,ai_settings存储设置.screen存储显 ...

最新文章

  1. 案例实作图解Asp.Net MVC教程
  2. python 操作微信定时发信息
  3. 18行代码AC_Wet Shark and Bishops CodeForces - 621B(数学推导+映射)
  4. Net方式实现主机与虚拟机互相ping通
  5. java字符串常量池长度_Java String类相关知识梳理(含字符串常量池(String Pool)知识)...
  6. 启动kafka报错:__consumer_offsets-22\00000000000000000000.index.swap: 另一个程序正在使用此文件,进程无法访问。
  7. php自动维护,window_Win7系统中的一些自动维护计划、任务关闭、禁用方法图文教程,  windows自动维护功能会在计 - phpStudy...
  8. 数据增强_NLP 数据增强方法 EDA
  9. Go专栏“改善Go语言编程质量的50个有效实践”上线了
  10. IDEA打包war部署到Tomcat
  11. 百度开放平台Demo提示“Key验证失败...”的问题
  12. Linux平台下软件推荐及主题图标推荐
  13. python requests ‘latin-1‘ codec can‘t encode characters in position 374-379: ordinal not in
  14. 企业数字化/数智化转型(一):数智力创新2.0
  15. API MISUSE: <CBCentralManager: 0x000000000> can only accept this command while in the powered on
  16. 《计算机是怎样跑起来的》学习笔记
  17. ubuntu 修改系统默认语言为英文!
  18. linux 硬盘时间查询,Linux 查看硬盘通电时间
  19. android 友盟统计动态设置渠道,Android 友盟多渠道打包
  20. 技术总监的校招之旅——分享校招全攻略指南(万字长文)

热门文章

  1. 诺基亚智能手机未来仅采用Symbian和MeeGo系统
  2. 两栏布局的几种实现方式
  3. java常用工具类和Hutool常用的工具类整理
  4. Matlab GUI handles结构体入门
  5. 学习存储技术的5个阶段
  6. Python图像处理丨图像的灰度线性变换
  7. HDU6356 Glad You Came(2018HDU多校联赛第五场,线段树)
  8. 解决java -version 系统找不到文件 C:\ProgramData\Oracle\Java\javapath\java.exe的问题
  9. 扯一下关于魔兽改键的蛋
  10. 嵌入式截屏工具-gsnap移植 arm平台