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 相关文章推荐
Python2.5/2.6实用教程 入门基础篇
Nov 29 Python
Python中字符串的格式化方法小结
May 03 Python
Python 详解基本语法_函数_返回值
Jan 22 Python
python+matplotlib实现礼盒柱状图实例代码
Jan 16 Python
基于Python pip用国内镜像下载的方法
Jun 12 Python
使用Python机器学习降低静态日志噪声
Sep 29 Python
解决Python selenium get页面很慢时的问题
Jan 30 Python
python 利用jinja2模板生成html代码实例
Oct 10 Python
python matplotlib拟合直线的实现
Nov 19 Python
在python中做正态性检验示例
Dec 09 Python
python实现自定义日志的具体方法
May 28 Python
python中tkinter复选框使用操作
Nov 11 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
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
使用php重新实现PHP脚本引擎内置函数
2007/03/06 PHP
JS 网站性能优化笔记
2011/05/24 PHP
PHPAnalysis中文分词类详解
2014/06/13 PHP
Symfony查询方法实例小结
2017/06/28 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
关于Curl在Swoole协程中的解决方案详析
2019/09/12 PHP
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
2013/11/07 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
js获取指定时间的前几秒
2017/04/05 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
Vue 报错TypeError: this.$set is not a function 的解决方法
2018/12/17 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
基于ajax及jQuery实现局部刷新过程解析
2020/09/12 jQuery
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
OpenCV 模板匹配
2019/07/10 Python
Python基于内置库pytesseract实现图片验证码识别功能
2020/02/24 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
汉森冲浪板:Hansen Surfboards
2018/05/19 全球购物
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
如何安装ruby on rails
2014/02/09 面试题
大学生应聘自荐信
2013/10/11 职场文书
企业法人授权委托书
2014/04/03 职场文书
干部年终考核评语
2015/01/04 职场文书
学习保证书
2015/01/17 职场文书
浅谈JavaScript作用域
2021/12/06 Javascript