pygame游戏之旅 添加游戏界面按键图形


Posted in Python onNovember 20, 2018

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

通过获取鼠标的位置然后进行高亮显示:

mouse =pygame.mouse.get_pos()
 if 150 + 100 > mouse[0] > 150 and 450 + 50 > mouse[1] > 450:
  pygame.draw.rect(gameDisplay, bright_green, (150,450,100,50))
 else:
  pygame.draw.rect(gameDisplay, green, (150,450,100,50))
 if 550 + 100 > mouse[0] > 550 and 450 + 50 > mouse[1] > 450:
  pygame.draw.rect(gameDisplay, bright_red, (550,450,100,50))
 else:
  pygame.draw.rect(gameDisplay, red, (550,450,100,50))

全部代码:

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.Font('freesansbold.ttf',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 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.Font('freesansbold.ttf',115)
  TextSurf, TextRect = text_objects('A bit Racey', largeText)
  TextRect.center = ((display_width/2),(display_height/2))
  gameDisplay.blit(TextSurf, TextRect)
  mouse =pygame.mouse.get_pos()
  if 150 + 100 > mouse[0] > 150 and 450 + 50 > mouse[1] > 450:
   pygame.draw.rect(gameDisplay, bright_green, (150,450,100,50))
  else:
   pygame.draw.rect(gameDisplay, green, (150,450,100,50))
  if 550 + 100 > mouse[0] > 550 and 450 + 50 > mouse[1] > 450:
   pygame.draw.rect(gameDisplay, bright_red, (550,450,100,50))
  else:
   pygame.draw.rect(gameDisplay, red, (550,450,100,50))
  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中通过threading模块定义和调用线程的方法
Jul 12 Python
SQLite3中文编码 Python的实现
Jan 11 Python
Python常见字符串操作函数小结【split()、join()、strip()】
Feb 02 Python
python flask中静态文件的管理方法
Mar 20 Python
Python实现读写INI配置文件的方法示例
Jun 09 Python
元组列表字典(莫烦python基础)
Apr 03 Python
Python实现打砖块小游戏代码实例
May 18 Python
Python实现某论坛自动签到功能
Aug 20 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
OpenCV哈里斯(Harris)角点检测的实现
Jan 15 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
Jan 18 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
Feb 07 Python
pygame游戏之旅 添加游戏介绍
Nov 20 #Python
pygame游戏之旅 计算游戏中躲过的障碍数量
Nov 20 #Python
pygame游戏之旅 添加碰撞效果的方法
Nov 20 #Python
pygame游戏之旅 如何制作游戏障碍
Nov 20 #Python
用Python编写一个简单的CS架构后门的方法
Nov 20 #Python
python pygame实现2048游戏
Nov 20 #Python
python pygame模块编写飞机大战
Nov 20 #Python
You might like
PHP获取网址的顶级域名函数代码
2012/09/24 PHP
PHP递归调用的小技巧讲解
2013/02/19 PHP
php导出excel格式数据问题
2014/03/11 PHP
PHP+MYSQL中文乱码问题
2015/07/01 PHP
thinkPHP中_initialize方法实例分析
2016/12/05 PHP
javascript 建设银行登陆键盘
2008/06/10 Javascript
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
flash遮住div问题的正确解决方法
2014/02/27 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
火狐下input焦点无法重复获取问题的解决方法
2014/06/16 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
JavaScript如何获取数组最大值和最小值
2015/11/18 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
基于element-ui的rules中正则表达式
2018/09/04 Javascript
vue项目设置scrollTop不起作用(总结)
2018/12/21 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
Python实现的检测网站挂马程序
2014/11/30 Python
python通过文件头判断文件类型
2015/10/30 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
Django框架视图介绍与使用详解
2019/07/18 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
心得体会怎么写
2013/12/30 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
2014领导班子四风剖析对照检查材料思想汇报
2014/09/20 职场文书
四风问题对照检查材料
2014/09/22 职场文书
2014年班主任工作总结
2014/11/08 职场文书
开会迟到检讨书范文
2015/05/06 职场文书
Python基于Opencv识别两张相似图片
2021/04/25 Python
分享3个非常实用的 Python 模块
2022/03/03 Python