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 21 Python
Python中使用items()方法返回字典元素对的教程
May 21 Python
Python实现文件复制删除
Apr 19 Python
python利用正则表达式提取字符串
Dec 08 Python
python+django加载静态网页模板解析
Dec 12 Python
python之PyQt按钮右键菜单功能的实现代码
Aug 17 Python
tensorflow 报错unitialized value的解决方法
Feb 06 Python
PyCharm 在Windows的有用快捷键详解
Apr 07 Python
Python dict的常用方法示例代码
Jun 23 Python
python中的垃圾回收(GC)机制
Sep 21 Python
python 获取字典特定值对应的键的实现
Sep 29 Python
python音频处理的示例详解
Dec 23 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实现的顺序线性表示例
2019/05/04 PHP
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
利用jsonp跨域调用百度js实现搜索框智能提示
2016/08/24 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
vue中echarts引入中国地图的案例
2020/07/28 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
Python shelve模块实现解析
2019/08/28 Python
使用 django orm 写 exists 条件过滤实例
2020/05/20 Python
快速创建python 虚拟环境
2020/11/28 Python
python中封包建立过程实例
2021/02/18 Python
localStorage的过期时间设置的方法详解
2018/11/26 HTML / CSS
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
小学班干部竞选演讲稿
2014/04/24 职场文书
竞选团支书演讲稿
2014/04/28 职场文书
节水口号标语
2014/06/19 职场文书
党员目标管理责任书
2014/07/25 职场文书
人事代理委托书
2014/09/27 职场文书
法定代表人证明书
2014/11/28 职场文书
承诺函范文
2015/01/21 职场文书
违纪开除通知书
2015/04/25 职场文书
2015年乡镇民政工作总结
2015/05/13 职场文书
论文致谢词范文
2015/05/14 职场文书
运动会开幕式致辞
2015/07/29 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书