一、问题
利用pygame进行游戏的编写,做一些简单的游戏比如贪吃蛇,连连看等,后期做完会把代码托管。

二、解决

1.环境配置

python提供一个pygame的库来进行游戏的编写。首先是安装pygame,命令行:【pip  install pygame】

2.初始化信息
利用set_mode(大小)和set_caption(标题)来对界面进行初始化

  pygame.init()
self.surface = pygame.display.set_mode((total_length * unit, total_width * unit))
self.py.display.set_caption("贪吃蛇")

3.循环界面,事件处理
利用一个while True来进行界面的循环,pygame.event.get()来获取事件,if进行退出判断,剩下的进行逻辑处理

    while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()

4.键盘的事件处理

利用事件的KEYWORD来处理键盘的事件,利用event.key可以处理对应的键盘信息event.key == ord('w') 和event.key == K_w,事件的处理效果一样。

  elif event.type == KEYDOWN:
if event.key == K_UP or event.key == ord('w'):
change_direction = 'up'
if event.key == K_LEFT or event.key == ord('a'):
change_direction = 'left'
if event.key == K_DOWN or event.key == ord('s'):
change_direction = 'down'
if event.key == K_RIGHT or event.key == ord('d'):
change_direction = 'right'

5.画图与界面更新

# 画图
# 圆(位置,半径,大小)
self.py.draw.circle(self.surface, self.color.green, (self.raspberry_position[0], self.raspberry_position[1]), int(self.unit / 2), int(self.unit / 2))
# 矩形(位置,长宽)
self.py.draw.rect(self.surface, self.color.red, Rect(self.raspberry_position[0], self.raspberry_position[1], self.unit, self.unit))
# 界面更新
# 更新界面
self.py.display.flip()

6.时钟的控制

利用time.Clock()来控制游戏的速度,越大越快。

 # 时钟
play_clock = pygame.time.Clock()
self.clock = play_clock

7.字体界面的布局

 game_over_font = self.py.font.Font(r'C:\Windows\Fonts\arial.ttf', 72)
game_over_surface = game_over_font.render('Game Over', True, self.color.gray)
game_over_rect = game_over_surface.get_rect()
game_over_rect.midtop = (self.length * 10, 10)

三、成果展示

四、总结
初入pygame,记录一些基本的内容,后面再添加关于界面和事件更高级处理的内容

初入pygame——贪吃蛇的更多相关文章

  1. Pygame 贪吃蛇

    目录 代码 遇到的问题 参考 代码 #-*-encoding=utf-8-*- # Wormy(a Nibbles clone) # By Al Sweigart al@inventwithpytho ...

  2. pygame编写贪吃蛇

    一直想用pygame做一个小游戏的,可是因为拖延症的缘故一直没有动,结果那天看到了一个12岁的国际友人小盆友用pygame做的一款塔防游戏,突然感觉已经落后超级远了,所以心血来潮做小游戏了.高中陪伴我 ...

  3. pygame写贪吃蛇

    python小白尝试写游戏.. 学了点pygame不知道那什么练手好,先拿贪吃蛇开刀吧. 一个游戏可以粗略的分为两个部分: 数据(变量) 处理数据(函数,方法) 设计变量 首先预想下,画面的那些部分需 ...

  4. 用python+pygame写贪吃蛇小游戏

    因为python语法简单好上手,前两天在想能不能用python写个小游戏出来,就上网搜了一下发现了pygame这个写2D游戏的库.了解了两天再参考了一些资料就开始写贪吃蛇这个小游戏. 毕竟最开始的练手 ...

  5. pygame试水,写一个贪吃蛇

    最近学完python基础知识,就想着做一个游戏玩玩,于是就在https://www.pygame.org/docs/学着做了个贪吃蛇游戏. 首先要导入模块. import pygame import ...

  6. Python实战练习_贪吃蛇 (pygame的初次使用)

    正如标题所写的那样,我将一步步的完成本次实战练习——贪吃蛇.废话不多说,感兴趣的伙伴可以一同挑战一下. 首先说明本次实战中我的配备: 开发环境:python 3.7: 开发工具:pycharm2019 ...

  7. Pygame模块实现功能超赞的贪吃蛇

    import pygame import random import sys import pygame.freetype import re import datetime   pygame.ini ...

  8. 程序游戏推荐(C语言贪吃蛇,python天天酷跑(需要安装pygame),js是狠人就坚持30s)

    下面是下载位置,我把他们上传到我的文件下了. C语言贪吃蛇:https://files.cnblogs.com/files/ITXiaoAng/%E8%B4%AA%E5%90%83%E8%9B%87. ...

  9. 贪吃蛇的java代码分析(二)

    代码剖析 贪吃蛇是一款十分经典的小游戏,对初入coding的朋友来说,拿贪吃蛇这样一个案例来练手十分合适,并不高的难度和成功后的成就感都是学习所必须的.下面我将依照我当时的思路,来逐步分析实现的整个过 ...

随机推荐

  1. Caused by: java.lang.IllegalArgumentException: argument type mismatch

    下面是我的报错信息 at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java: ...

  2. python3字典练习(重要)

    #keys()返回字典里的所有的键dic = {'k1':'wcj','k2':33,'k3':[11,22,33,]}r = dic.keys()print(r) #结果为ict_keys(['k3 ...

  3. [Flutter] lib/main.dart:1: Warning: Interpreting this as package URI, 'package:flutter_app/main.dart'.

    lib/main.dart:1: Warning: Interpreting this as package URI, 'package:flutter_app/main.dart'. import ...

  4. hashCode 与 equals

    面试官可能会问你:“你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?”   hashCode()介绍 hashCode() 的作用是获取哈希码, ...

  5. 20175314 实验二 Java面向对象程序设计

    20175314 实验二 Java面向对象程序设计 一.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 二 ...

  6. Android 菊花加载工具类

    先看看实现效果图 1.首先自定义一个类继承系统ProgressDialog /** * Created by hanbao0928 on 2018/11/1. */ public class Dial ...

  7. linux服务开机自动启动

    zookeeper设置开机自动启动 第一种:直接修改/etc/rc.d/rc.local文件 在/etc/rc.d/rc.local文件中需要输入两行,其中export JAVA_HOME=/usr/ ...

  8. Dockerfile的常见命令

    FROM 格式: FROM  <image> 或者  FROM <image>:<tag> FROM指令的功能是为后面的指令提供基础镜像,所以该指令一定是Docke ...

  9. Loadrunner 11.00录制App脚本篇(Win10)

    参考博文1:https://www.cnblogs.com/mxqh2016/p/6016866.html 参考博文2:https://blog.csdn.net/myohmy2008/article ...

  10. 【转载】Linux系统下命令行连接蓝牙设备 查看查找 蓝牙

    Linux系统下命令行连接蓝牙设备 2018年11月26日 10:47:27 Zz笑对一切 阅读数:741   1.打开系统蓝牙 sudo service bluetooth start 1 进入bl ...