
python小游戏
雷玉广
四二学堂教学总监。
展开
-
【四二学堂】python四子连珠游戏-5(交替变换颜色,记录位置)
课程视频:https://edu.youkuaiyun.com/course/detail/28882代码:from tkinter import*import time#画布#棋盘#鼠标左键绑定事件#落下棋子后位置记录下来。保证每个棋子能够落在准确的位置上。#交替变换颜色,记录位置class Game: def __init__(self): #self.ball=ball self.clsposition = Clsposition()原创 2020-05-11 18:03:13 · 316 阅读 · 0 评论 -
【四二学堂】python四子连珠游戏-4(落下棋子后位置记录下来。保证每个棋子能够落在准确的位置上)
课程视频:https://edu.youkuaiyun.com/course/detail/28882代码:from tkinter import*import time#画布#棋盘#鼠标左键绑定事件#落下棋子后位置记录下来。保证每个棋子能够落在准确的位置上。class Game: def __init__(self): #self.ball=ball self.clsposition = Clsposition() self.tk = T原创 2020-05-11 18:00:59 · 258 阅读 · 0 评论 -
【四二学堂】python四子连珠游戏-3(鼠标左键绑定事件)
课程视频:https://edu.youkuaiyun.com/course/detail/28882代码:from tkinter import*import time#画布#棋盘#鼠标左键绑定事件class Game: def __init__(self): #self.ball=ball self.tk = Tk() self.tk.title("四二学堂Python四子连珠游戏") self.tk.resizable(原创 2020-05-11 17:58:10 · 228 阅读 · 0 评论 -
【四二学堂】python四子连珠游戏-2(画棋盘)
课程视频:https://edu.youkuaiyun.com/course/detail/28882代码:from tkinter import*#画布#棋盘class Game: def __init__(self): self.tk = Tk() self.tk.title("四二学堂Python四子连珠游戏") self.tk.resizable(0, 0) # 窗口在水平、垂直方向的大小都不能改变 # tk.wm_att原创 2020-05-11 17:54:57 · 364 阅读 · 0 评论 -
【四二学堂】python四子连珠游戏-1(创建画布)
课程视频:https://edu.youkuaiyun.com/course/detail/28882from tkinter import*#画布class Game: def __init__(self): self.tk = Tk() self.tk.title("四二学堂Python四子连珠游戏") self.tk.resizable(0, 0) # 窗口在水平、垂直方向的大小都不能改变 # tk.wm_attributes(原创 2020-05-11 17:51:47 · 305 阅读 · 0 评论 -
【四二学堂】python四子连珠游戏
课程视频:https://edu.youkuaiyun.com/course/detail/28882游戏效果图:代码:from tkinter import *import timeimport tkinter.messageboxfrom ClspositionUpOrDown import ClspositionUpOrDownfrom Obliquedirection import Obliquedirections# 画布# 棋盘# 鼠标左键绑定事件# 落下棋子后位置记录下来。保原创 2020-05-11 17:39:35 · 410 阅读 · 0 评论 -
【四二学堂】基于python+pygame的太空阻击游戏(python版带视频)
csdn课程视频地址:https://edu.youkuaiyun.com/course/detail/28487import pygamefrom pygame.locals import*from sys import exitimport randomimport mathscreen_width,screen_height=480,700screen=pygame.display...原创 2020-04-16 08:54:36 · 307 阅读 · 0 评论 -
【四二学堂】基于python+pygame的游戏开发环境搭建
环境参考:win10+python 3.7.7下面我们来安装pygame:1、下载pygamehttps://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame2、找到python3.7的默认安装路径以win10为例C:\Users\LYG\AppData\Local\Programs\Python\Python37注意,AppData是隐藏文...原创 2020-04-07 08:05:32 · 372 阅读 · 0 评论 -
【四二学堂】-python小游戏(井字游戏之十)
2.12处理边界提示最后我们处理一下,单击在棋盘外时,给用户一个提示。下面是我们要做的事情。1、正确理解边界的坐标值。2、超出边界给出提示:请选择正确的落子位置。实现代码如下:if event.x<=100 or event.x>=700 or event.y<=100 or event.y>=700:tkinter.messagebox.showinfo(‘提...原创 2019-03-08 13:36:47 · 611 阅读 · 3 评论 -
【汇智学堂】-python系列小游戏(井字游戏之八)
2.10完成落子各个方向的判断现在我们要完成同色棋子在不同方向,是否三子连成一线,如果是,提示赢了。结合我们上一节讲的内容,下面是我们要做的事情。1、判断所有横向,两种颜色棋子是否三子成一线。2、判断所有竖向,两种颜色棋子是否三子成一线。。3、判断所有斜向,两种颜色棋子是否三子成一线。。实现代码如下:if position[0]==position[1] and position[1]...原创 2019-03-08 13:34:21 · 575 阅读 · 2 评论 -
【汇智学堂】-python系列小游戏(井字游戏之七)
2.9判断同一颜色的棋子三子成线现在我们要在棋盘上同一方向上完成同一颜色三子成一线的判断。我们从一个方向开始。下面是我们要做的事情。1、清楚三子成一线的本质,是位置状态相同。2、位置状态相同,判断后提示:赢了实现代码如下:if event.x>100 and event.x<300 and event.y<500 and event.y>300:canvas.c...原创 2019-03-08 13:33:05 · 585 阅读 · 0 评论 -
【汇智学堂】-python系列小游戏(井字游戏之六)
2.8判断当前位置是否有棋子现在我们要判断在落子的时候,当前方格内是否有棋子,如果有给出提示。如果没有,我们就落子。1、我们选择方格一和方格二来做测试。2、如果当前位置有棋子,提示已有棋子。3、如果没有棋子,我们判断颜色后,落下对应颜色的棋子。实现代码如下:redorgreen=0colorx=“green”position=[0,0,0,0,0,0,0,0,0]def yeso...原创 2019-03-08 13:30:53 · 505 阅读 · 0 评论 -
【汇智学堂】-python系列小游戏(井字游戏之五)
2.7不同位置交替落子现在我们要在棋盘上的不同位置点击,交替颜色画棋子。下面是我们要做的事情。1、在第一方格内点击时,落子在第一方格内。2、每次单击后,颜色交替。3、依据第一步骤的方案,将其他八个方格的落子完成。实现代码如下:def action(event):global redorgreenglobal colorx#if redorgreen0 and event.x>...原创 2019-03-08 13:28:17 · 360 阅读 · 0 评论 -
【汇智学堂】-python小游戏(生成.exe文件)
第六章:生成.exe程序我们应用pyinstaller,将我们的程序生成.exe程序。使它在没有Python的环境下,可以运行。6.1 Pyinstaller的安装Pyinstaller的官网下载地址:http://www.pyinstaller.org/downloads.html见下图6-1、6-2图6-1图6-2下载后,进入解压好的PyInstaller目录我的目录是C...原创 2019-03-07 21:02:05 · 2177 阅读 · 4 评论 -
【汇智学堂】-python系列小游戏(井字游戏之三)
2.4画出静态的棋子现在我们要在棋盘上画棋子。我们从一个棋子开始。下面是我们要做的事情。1、画出第一个棋子。这里我们用一个填充了绿色的圆来代表。2、我们需要将圆画在指定的位置上。保证它落下的位置在第一个格子里。3、按照第二步的方法,画出另外的圆,体会一下落子和棋盘的位置关系。实现代码如下:#落下棋子canvas.create_oval(100, 100, 300, 300, fill...原创 2019-03-07 18:57:18 · 1452 阅读 · 0 评论 -
【汇智学堂】-pyton系列小游戏(井字游戏之二)
2.3画棋盘现在我们要在画布上画棋盘。我们从棋盘的一根线开始。下面是我们要做的事情。1、规划棋盘:800*800px、距离边界各100px。见图2-5。2、确定第一根横线的起始点、结束点坐标。起始点(100,100),结束点(700,100)。3、利用canvas.create_line(100,100,700,100),画出第一根横线。4、按照第三步的方法,画出另外两根横线及三根竖线。...原创 2019-03-07 18:54:40 · 1419 阅读 · 1 评论 -
【汇智学堂】-python系列小游戏(井子游戏之一)
第二章:你的第一个游戏:井字游戏现在我们开始自己动手,做我们的第一款PYTHON游戏2.1井字游戏介绍我们将要开发一款井字游戏。棋子分红、绿两种颜色,玩家要在水平、垂直或斜线任一方向,最先在一条直线上连接三个标记者获胜。棋盘见下图2-1;取得胜利的界面见图2-2。图2-1图2-2我们的游戏可能看起来很简单,但对我们初次编写游戏的朋友们来说,代码还是有些棘手的。因外它需要处理很多的...原创 2019-03-07 18:49:57 · 2543 阅读 · 1 评论 -
【汇智学堂】-python系列小游戏开发准备工作
第一章:准备工作游戏开发是程序开发的一种。程序就是指令,让计算机明白要做什么的指令。编写指令,让计算机能够显示游戏界面,角色,与我们参与者交互,就是我们要学习的内容。编写游戏有很多种语言工具,python是其中之一。1.1了解一下Python1.1.1 Python的名字由来Python编程语言的名字来自电视剧《蒙提-派森的飞行马戏团》,是英国20世纪70年代首播的电视喜剧。Python语...原创 2019-03-07 18:45:36 · 1868 阅读 · 2 评论 -
【汇智学堂】-python四子棋小游戏之一--菜鸟版
from tkinter import*import timeimport randomimport tkinter.messagebox#根据颜色改变所有列位置的值tk=Tk()tk.title(“雷雷四子球小游戏”)tk.resizable(0,0)tk.wm_attributes(&amp;quot;-topmost&amp;quot;,1)canvas = Canvas(tk,width=700,heigh...原创 2019-03-05 18:35:25 · 1805 阅读 · 0 评论 -
【汇智学堂】-菜鸟版Python四子球游戏之二(输赢判断)
实现代码:from tkinter import*import timeimport randomimport tkinter.messagebox#判断第一行,四子成线,提示成功tk=Tk()tk.title(“雷雷四子球小游戏”)tk.resizable(0,0)tk.wm_attributes("-topmost",1)canvas = Canvas(tk,width=...原创 2019-03-05 18:34:29 · 641 阅读 · 3 评论 -
【汇智学堂】-python系列小游戏(井字游戏之四)
2.5认识鼠标事件现在我们要在棋盘上根据鼠标单击的点,来落棋子。首先我们一起认识一下鼠标事件。通过鼠标事件,我们结合坐标,就可以在准确的位置画出棋子。我们利用弹出框来给我做提醒。下面是我们要做的事情。1、导入messagebox。2、定义函数。3、将函数内执行的代码绑定到鼠标事件上。实现代码如下:import tkinter.messageboxdef action(event):...原创 2019-03-07 19:02:34 · 1210 阅读 · 0 评论 -
【汇智学堂】-python小游戏(贪吃蛇游戏之九-右侧吃到食物后蛇身变长)
4.9右侧吃到食物后蛇身变长我们在上一节中,蛇吃到食物后,蛇身没能变长,而生成的那一节蛇身,停留在食物原来的位置上。这一节我们解决这个问题。下面是我们要做的事情。1、蛇身变长。2、上节生成的一节蛇身消失。实现代码如下:class Snake:def __init__(self): self.y=0 def draw(self,g,f...原创 2019-03-11 18:06:54 · 745 阅读 · 0 评论 -
【汇智学堂】-python小游戏(井字游戏之十一)
2.13精简代码我们在审查我们代码时,发现重复的代码特别多,我们通过定义函数的方法,重构一下我们的代码。下面是我们要做的事情。1、将重复代码分类。2、利用循环、函数等精简我们的代码。精简画棋盘的实现代码如下:lines=[100,300,500,700]for i in lines:canvas.create_line(100,i,700,i)canvas.create_line(...原创 2019-03-08 13:38:27 · 503 阅读 · 0 评论 -
【汇智学堂】-python小游戏(弹球游戏之一)
第三章:弹球游戏现在我们开始自己动手,做我们的第二款PYTHON游戏-弹球游戏3.1弹球游戏介绍我们将要开发一款弹球游戏。弹球游戏是一款有趣的益智休闲游戏,你需要控制绿色的球板,让它弹到球,使她不下落,坚持的时间越长,分数越高。球板控制的方法:键盘左键控制向左,键盘右键控制向右。游戏场景见下图:球下落的界面见图3-1,球接触球板反弹的界面见图3-2,球板碰到左侧墙壁的界面见图3-3,球板...原创 2019-03-08 18:35:18 · 2314 阅读 · 3 评论 -
【汇智学堂】-python小游戏(弹球游戏之二)
3.2创建游戏的场景游戏场景中包括:画布、球和球板。创建的代码如下#-- coding:GBK --from tkinter import *import timeimport randomimport tkinter.messagebox #messageboxtk = Tk()tk.title(“雷雷的弹球游戏”)tk.resizable(0, 0)tk.wm_attri...原创 2019-03-08 18:38:27 · 608 阅读 · 0 评论 -
【汇智学堂】-python小游戏(贪吃蛇游戏之四-创建蛇及食物)
4.4创建蛇及食物我们将在600*600像素的画布上,按类来管理我们蛇及食物。下面是我们要做的事情。1、创建蛇的类,__init__函数中生成蛇。2、创建食物的类,__init__函数中生成食物。实现代码如下:class Snake:def init(self):self.x1=40self.y1=40self.x2=60self.y2=60def drawsnake(sel...原创 2019-03-11 17:57:58 · 515 阅读 · 0 评论 -
【汇智学堂】-python小游戏(贪吃蛇游戏之五-创建蛇身及动画)
4.5创建蛇身及动画我们在上一节中创建的蛇,只是一个方形,为了更加逼真,我们改用矩形-三个正方形连在一起来代表蛇,这样更能体现蛇的身长。我们将在600*600像素的画布上,创建一条蛇-由三个正方形连在一起的蛇,并使让能够向右运动。下面是我们要做的事情。1、创建“长”蛇。2、创建“长”蛇的动画。实现代码如下:class Snake:def __init__(self): ...原创 2019-03-11 17:59:44 · 604 阅读 · 0 评论 -
【汇智学堂】-python小游戏(贪吃蛇游戏之六-完成上下左方向的动画)
4.6完成上下左方向的动画我们在上一节中创建的蛇,只能向右运动。这一节中,我们让它能够在上、下、左、右都能运动。下面是我们要做的事情。1、创建“长”蛇向上运动的动画。2、创建“长”蛇向左运动的动画。3、创建“长”蛇向下运动的动画。实现代码如下:class Game:def __init__(self): #横坐标增量self.x=0self.y=0 se...原创 2019-03-11 18:01:35 · 308 阅读 · 0 评论 -
【汇智学堂】-python小游戏(贪吃蛇游戏之七-控制蛇的头部方向)
4.7控制蛇的头部方向我们在上一节中创建的蛇,当方向发生改变时,我们发现,它的头部很别扭。我们看到,有时是它的头在转向,有时是它的尾在转向。在这一节中,我们使它都从头部转向。下面是我们要做的事情。1、修改“长”蛇向上、向下、向左及向右运动的动画。2、体会不同状态时,参数的运用。实现代码如下:class Snake:def __init__(self): ...原创 2019-03-11 18:03:25 · 922 阅读 · 0 评论 -
【汇智学堂】-python小游戏(贪吃蛇游戏之八-吃食物)
4.8吃食物我们创建的蛇,在遇到食物时,直接运动过去了。这节我们来解决一下蛇吃掉食物的问题。下面是我们要做的事情。1、判断蛇是否吃到食物。2、吃到食物后食物消失。3、是食物位置生成新的一段蛇身。4、在新的位置生成食物。实现代码如下:class Snake:def __init__(self): self.y=0 def draw...原创 2019-03-11 18:04:57 · 617 阅读 · 0 评论 -
【汇智学堂】-python小游戏(贪吃蛇游戏之十-完成上下左吃到食物后蛇身变长)
4.10完成上下左吃到食物后蛇身变长我们结合上一节的分析,修改代码,完成上下左右吃到食物后蛇身变长。下面是我们要做的事情。1、完成左侧吃到食物后蛇身变长。2、完成上侧吃到食物后蛇身变长。3、完成下侧吃到食物后蛇身变长。实现代码如下:class Snake:def __init__(self): self.y=0 def draw(...原创 2019-03-11 18:08:34 · 1068 阅读 · 0 评论 -
【汇智学堂】-python小游戏(太空阻击之一-浅谈游戏开发)
第五章:太空阻击本章将通过一个太空射击游戏实例来介绍python中pygame的基本使用方法,包括创建游戏体,键盘、鼠标操作,基本的物理碰撞、UI显示和逻辑处理等。5.1浅谈游戏开发游戏开发是一个复杂的过程,一款游戏的背后,有数人甚至上百人的开发团队。5.1.1游戏开发的主要环节游戏开发的主要环节有:1、市场调研2、产品策划3、美术4、编写脚本5、阶段性成果6、测试7、发布...原创 2019-03-11 18:11:08 · 748 阅读 · 0 评论 -
【汇智学堂】-python小游戏(贪吃蛇游戏之十一-游戏结束的判断)
4.11游戏结束的判断我们看到在上一节的代码中,有很多重复的地方。我们需要精简一下它。游戏结束需要提示一下。游戏结束时需要给用户一个积分。下面是我们要做的事情。1、创建函数精简代码。2、游戏结束提示。3、游戏结束时给用户显示他的积分。实现代码如下:class Game:def eatFood(self,f):if self.body[0][0]*20f.x11rec and sel...原创 2019-03-11 18:09:40 · 752 阅读 · 0 评论 -
【汇智学堂】-python系列小游戏(井字游戏之九)
2.11给出游戏结束的提示现在我们要在棋盘上给出游戏结束的提示,下面是我们要做的事情。1、用一个变量记录是否结束。2、当游戏结束时给出提示。实现代码如下:global overornotif overornot==1: tkinter.messagebox.showinfo('提示',"游戏已结束!") Returnif position[0]==position[1]...原创 2019-03-08 13:35:20 · 471 阅读 · 0 评论 -
【汇智学堂】-python小游戏(贪吃蛇游戏之二-运动动画的测试)
4.2运动动画的测试我们将在600*600像素的画布上,实现图片上下左右的动画。下面是我们要做的事情。1、获得图像id。2、控制方向。实现代码如下:def init(self):self.snake=PhotoImage(file=‘C:\Users\soft\Desktop\训练\PYTHON\LYG-向荣\snake\snake\snake.gif’)self.food=Pho...原创 2019-03-09 09:04:02 · 545 阅读 · 0 评论 -
【汇智学堂】-python小游戏(贪吃蛇游戏之一-游戏场景)
第四章:贪吃蛇游戏在这一章里,我们一起构建经典的街机游戏贪吃蛇。在贪吃蛇中,玩家控制一条蛇向上、向下、向左或向右移动。随着蛇在游戏区域内移动,食物会出现。当蛇碰到食物,它会吃掉食物并且变长。但是,如果蛇碰到了墙壁或者自己身体的某个部分,游戏就结束了。图4-1、4-2展示了完成后的游戏的样子。游戏运行的过程中,需要记录3项内容并将它绘制到屏幕上:游戏边框,贪吃蛇、食物。同时,还要在程序中记录玩家...原创 2019-03-09 09:02:08 · 515 阅读 · 0 评论 -
【汇智学堂】-python小游戏(贪吃蛇游戏之三-创建蛇并向右运动)
4.3创建蛇并向右运动我们将在600*600像素的画布上,实现我们自己创建的蛇,向右运动。下面是我们要做的事情。1、绘制蛇及食物。2、控制蛇向右运动。实现代码如下:def init(self):self.x1rec=40self.y1rec=40self.x2rec=60self.y2rec=60self.id3=self.canvas.create_rectangle(sel...原创 2019-03-09 09:05:08 · 400 阅读 · 0 评论 -
【汇智学堂】-python小游戏(弹球游戏之三)
3.3场景分析第一步:场景上半部分,随机位置创建一个球;固定位置生成一个球拍。见图3-7图3-7第二步:球直线下落。落至底部,游戏结束。见图3-8图3-8第三步:移动球拍。(左右键控制)见图3-9图3-9第四步:碰撞,小球的右下角Y坐标,与球拍左上角Y坐标相同,见图3-10图3-10第五步:球按一个角度冲下。见图3-11图3-11第六步:初始时生成一个角度:沿角度运...原创 2019-03-08 18:42:40 · 506 阅读 · 0 评论 -
【汇智学堂】-python小游戏(弹球游戏之四-认识动画)
3.4认识动画在我们PYTHON中tkinter模块,做动画不是它的特长,但基本的处理还是可以做的。例如,我们可以创建一个填了色的圆,用下面的代码让它在屏幕上横向移动。下面是我们要做的事情。1、在指定位置,画一绿色的圆。2、认识圆的id。3、使圆沿着屏幕左侧每间隔0.07秒,移动一下圆形。实现代码如下:#练习基础动画import timefrom tkinter import*...原创 2019-03-09 08:40:48 · 1046 阅读 · 0 评论 -
【汇智学堂】-python小游戏(弹球游戏之五-场景中应用动画)
3.5场景中应用动画现在我们回到我们的游戏场景中,将我们刚才学到的动画知识应用一下,达到球从指定范围内的任意位置,垂直下落到游戏场景的底部。下面是我们要做的事情。1、获得球的id号。2、根据球的id获得画圆时的第四个参数position[3]。3、比较该参数与屏幕底部纵坐标a的关系,如果>=a,说明到达底部,游戏结束。实现代码如下:a=random.randint(50,600)...原创 2019-03-09 08:44:29 · 645 阅读 · 0 评论