pygame游戏之旅 调用按钮实现游戏开始功能


Posted in Python onNovember 21, 2018

本文为大家分享了pygame游戏之旅的第12篇,供大家参考,具体内容如下

实现点击功能:

click = pygame.mouse.get_pressed()
print(click)
if x + w > mouse[0] > x and y + h > mouse[1] > y:
 pygame.draw.rect(gameDisplay, ac, (x,y,w,h))
 if click[0] == 1 and action != None:
 action()

修改显示文字:

pygame.font.SysFont('comicsansms',115)

源代码:

import pygame
import time
import random
 
pygame.init()
 
white = (255,255,255)
black = (0,0,0)
gray = (128,128,128)
red = (200,0,0)
green = (0,200,0)
bright_red = (255,0,0)
bright_green = (0,255,0)
blue = (0,0,255)
 
 
car_width = 100
 
display_width = 800
display_height = 600
 
 
gameDisplay = pygame.display.set_mode( (display_width,display_height) )
pygame.display.set_caption('A bit Racey')
clock = pygame.time.Clock()
 
carImg = pygame.image.load('car.png')
 
def things_dodged(count):
 font = pygame.font.SysFont(None, 25)
 text = font.render("Dodged:"+str(count), True, black)
 gameDisplay.blit(text,(0,0))
 
def things(thingx, thingy, thingw, thingh, color):
 pygame.draw.rect(gameDisplay, color, [thingx, thingy, thingw, thingh])
 
 
 
def car(x, y):
 gameDisplay.blit(carImg, (x,y))
 
 
def text_objects(text, font):
 textSurface = font.render(text, True, black)
 return textSurface, textSurface.get_rect()
 
def message_diaplay(text):
 largeText = pygame.font.SysFont('comicsansms',115)
 TextSurf, TextRect = text_objects(text, largeText)
 TextRect.center = ((display_width/2),(display_height/2))
 gameDisplay.blit(TextSurf, TextRect)
 pygame.display.update()
 time.sleep(2)
 game_loop()
 
def crash():
 message_diaplay('You Crashed!')
 
def button (msg, x, y, w, h, ic, ac, action=None):
 mouse =pygame.mouse.get_pos()
 click = pygame.mouse.get_pressed()
 print(click)
 if x + w > mouse[0] > x and y + h > mouse[1] > y:
  pygame.draw.rect(gameDisplay, ac, (x,y,w,h))
  if click[0] == 1 and action != None:
  action()
##  if action == "play":
##   action()
##  if action == "quit":
##   pygame.quit()
##   quit()
 else:
  pygame.draw.rect(gameDisplay, ic, (x,y,w,h))
 smallText = pygame.font.SysFont('comicsansms', 20)
 textSurf, textRect = text_objects(msg, smallText)
 textRect.center = ( (x+(w/2)), (y+(h/2)))
 gameDisplay.blit(textSurf, textRect)
 
def quitgame():
 pygame.quit()
 quit()
 
def game_intro():
 intro = True
 while intro:
 for event in pygame.event.get():
  print(event)
  if event.type == pygame.QUIT:
  pygame.quit()
  quit()
 gameDisplay.fill(white)
 largeText = pygame.font.SysFont('comicsansms',115)
 TextSurf, TextRect = text_objects('A bit Racey', largeText)
 TextRect.center = ((display_width/2),(display_height/2))
 gameDisplay.blit(TextSurf, TextRect)
 button("GO", 150, 450, 100, 50, green, bright_green,game_loop)
 button("Quit",550, 450, 100, 50, red, bright_red,quitgame)
 pygame.display.update()
 clock.tick(15)
 
def game_loop():
 x = display_width * 0.45
 y = display_height * 0.8
 x_change = 0
 
 dodged = 0
 
 gameExit = False
 
 thing_startx = random.randrange(0, display_width)
 thing_starty = -600
 thing_speed = 7
 thing_width = 100
 thing_height = 100
 
 while not gameExit:
 for event in pygame.event.get():
  if event.type == pygame.QUIT:
  pygame.quit()
  quit()
  if event.type == pygame.KEYDOWN:
  if event.key == pygame.K_LEFT:
   x_change = -5
  elif event.key == pygame.K_RIGHT:
   x_change = 5
  if event.type == pygame.KEYUP:
  if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
   x_change = 0
  print(event)
 x += x_change
 gameDisplay.fill(white)
 
 things(thing_startx, thing_starty, thing_width, thing_height, black)
 thing_starty += thing_speed
 
 car(x,y)
 things_dodged(dodged)
 if x > display_width - car_width or x < 0:
  gameExit = True
 if thing_starty > display_height:
  thing_starty = 0 - thing_height
  thing_startx = random.randrange(0, display_width)
  dodged += 1
  thing_speed += 1
  thing_width += (dodged * 1.2)
 if y < thing_starty + thing_height:
  print('y crossover')
  if x > thing_startx and x < thing_startx + thing_width or x + car_width > thing_startx and x + car_width < thing_startx + thing_width:
  print('x crossover')
  crash()
 pygame.display.update()
 clock.tick(60)
#crash()
game_intro()
game_loop()
pygame.quit()
quit()

结果图:

pygame游戏之旅 调用按钮实现游戏开始功能

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

Python 相关文章推荐
python控制台中实现进度条功能
Nov 10 Python
Python基础篇之初识Python必看攻略
Jun 23 Python
Python利用Beautiful Soup模块修改内容方法示例
Mar 27 Python
Python PyQt5标准对话框用法示例
Aug 23 Python
python实现12306抢票及自动邮件发送提醒付款功能
Mar 08 Python
python更改已存在excel文件的方法
May 03 Python
替换python字典中的key值方法
Jul 06 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
Jan 22 Python
Python 微信之获取好友昵称并制作wordcloud的实例
Feb 21 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
Keras保存模型并载入模型继续训练的实现
Feb 20 Python
Python NumPy灰度图像的压缩原理讲解
Aug 04 Python
pygame游戏之旅 按钮上添加文字的方法
Nov 21 #Python
Face++ API实现手势识别系统设计
Nov 21 #Python
详解django自定义中间件处理
Nov 21 #Python
pygame游戏之旅 添加游戏界面按键图形
Nov 20 #Python
pygame游戏之旅 添加游戏介绍
Nov 20 #Python
pygame游戏之旅 计算游戏中躲过的障碍数量
Nov 20 #Python
pygame游戏之旅 添加碰撞效果的方法
Nov 20 #Python
You might like
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
php中文验证码实现示例分享
2014/01/12 PHP
PHP分页类集锦
2014/11/18 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
使用PHPWord生成word文档的方法详解
2019/06/06 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
深入理解JavaScript系列(15) 函数(Functions)
2012/04/12 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
jQuery Raty 一款不错的星级评分插件
2016/08/24 Javascript
js实现日历的简单算法
2017/01/24 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
2018/05/15 Javascript
vue mounted组件的使用
2018/06/18 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
2020/08/19 Javascript
[50:34]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python在linux中输出带颜色的文字的方法
2014/06/19 Python
Python后台开发Django的教程详解(启动)
2019/04/08 Python
详解Python中的测试工具
2019/06/09 Python
django项目中新增app的2种实现方法
2020/04/01 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
python 实现端口扫描工具
2020/12/18 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
机械专业个人求职自荐信格式
2013/09/21 职场文书
幼儿园园长岗位职责
2013/11/26 职场文书
土建专业大学生自荐信范文
2014/04/09 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
活动总结报告怎么写
2014/07/03 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL
HTML静态页面获取url参数和UserAgent的实现
2022/08/05 HTML / CSS