简介:摘要:本文描述了运用Pygame来制作简单的贪吃蛇游戏以及制作中遇到的一些问题与解决方法 关键词:Pygame,贪吃蛇 1 概述:游戏是人们日常最主要的娱乐方式之一。Pygame是python平台下的游戏开发库,可以用于一些2D游戏的制作。 2 游戏内容介绍:游戏中使用三个单位的正方形作为贪吃蛇的身体,以一个单位的正方形作为食物。当贪吃蛇吃掉食物后,它的身体会变长。玩家可以控制贪吃蛇的移动从而吃到食物。当蛇的头部撞到游戏界面边缘时游戏结束。程序运行起来如下图所示: 3 核心代码:在最开始的时候,我们需要导入Pygame,系统以及随机数的模块,代码如下: import pygame, sys, random 首先贪吃蛇游戏由蛇和食物组成,游戏中蛇呈白色,食物呈红色。蛇的身体是由三个20*20的像素框组成,食物由一个像素框组成。玩家可以通过上下左右四个键来控制蛇的移动方向从而吃到食物。当蛇的头部碰到食物时,代表它吃到了食物。当它吃到食物后,蛇的生体增加一个像素框,食物再从屏幕上随机生成。当玩家按下的按键和蛇行动的方向相反时,蛇不会做出反应,当按键和蛇的行动方向相同时,蛇也不会加速。 玩家可以通过键盘上的方向键来控制蛇的移动方向并且当玩家按的方向键与蛇移动方向相反时,蛇不会做出反应。以下是其部分代码: if event.key == K_RIGHT: changeDirection = "right" if event.key == K_LEFT: changeDirection = "left" if event.key == K_UP: changeDirection = "up" if event.key == K_DOWN: changeDirection = "down" 上面这段代码定义了当玩家按下右方向键时,贪吃蛇的改变移动方向为右。当玩家按下左方向键时,贪吃蛇的改变移动方向左。同理,按下上方向键时贪吃蛇的改变移动方向为上,按下下箭头时,贪吃蛇的改变移动方向为向下。 if changeDirection == "left" and not direction == "right": direction = changeDirection if changeDirection == "right" and not direction == "left": direction = changeDirection if changeDirection == "up" and not direction == "down": direction = changeDirection if changeDirection == "down" and not direction == "up": direction = changeDirection 上述代码表示当改变方向为右且移动方向不为左时,贪吃蛇就会向右转反之亦然。当改变方向为上且移动方向不为下时,蛇会向上转,同理,当改变方向为下,移动方向不为上时,蛇会向下转。 制作时设置游戏界面大小,目标初始位置以及蛇的大小和初始运动方向也极为重要,大家可以按照自己的喜好来调整游戏界面的大小和蛇的初始运动方向。 playSurface = pygame.display.set_mode((640, 600)) pygame.display.set_caption("Snake using Python") snakePosition = [100, 100] snakeBody = [[100, 100], [80, 100], [60, 100]] targetposition = [300, 300] eatenFlag = 1 direction = "right" 其中640为游戏界面的宽度,600为界面的高度。"Snake using Python"这三个单词为这个游戏的标题。在这段代码中,我们可以看到蛇的初始位置为100,100,蛇由三个相连的像素框组成并且蛇的初始移动方向为向右移动。食物的初始位置在300,300这个位置上。 蛇头向前延伸一格,就会把它原来尾部的格子去掉使它看起来像是整体向前移动而不是从头部无限延长。当它吃到游戏中的食物后,就会把尾部的格子保留让它看起来像是变长了。当食物被蛇吃掉之后,新的食物会在游戏界面内随机生成。下面是部分代码: if eatenFlag == 0: x = random.randrange(1, 32) y = random.randrange(1, 24) targetposition = [int(x * 20), int(y * 20)] eatenFlag = 1 玩家可以在游戏在中通过按下方向键来控制蛇行动的方向 if direction == "right": snakePosition[0] += 20 if direction == "left": snakePosition[0] -= 20 if direction == "up": snakePosition[1] -= 20 if direction == "down": snakePosition[1] += 20 在游戏中的每个像素框的大小均为20*20,由此,我们可以从上面的这段代码中看出当玩家按下右箭头时,蛇的头部会向它的右侧移动一个像素宽框,从而让它看起来像是往右转了一样。由于游戏中像素框的排列是从左往右递增得的,所以向右转的符号为正的。而在垂直方向,像素框是从上往下递增的,所以向上转的符号为负。同理,向左转的符号也为负,向下转的符号为正。 当然,制作者也可以由自己的喜好来定义游戏背景的颜色,贪吃蛇的颜色以及食物的颜色 pygame.draw.rect(playSurface, whiteColor, Rect(position[0], position[1], 20, 20)) pygame.draw.rect(playSurface, redColor, Rect(targetposition[0], targetposition[1], 20, 20)) 先在整段代码的开头定义好颜色之后,就可以用上面这段代码来调整贪吃蛇的颜色和食物的颜色。可以看到我的代码中的贪吃蛇颜色是为白色,食物的颜色为红色。 同时,制作时需要设置贪吃蛇的前进速度,否则它将会快速的撞到游戏界面的边缘导致游戏结束 if snakePosition[0] > 620 or snakePosition[0] < 0: gameOver() elif snakePosition[1] > 600 or snakePosition[1] < 0: gameOver() 如果贪吃蛇头部的格子碰到游戏界面的最左侧或者最右侧时,则游戏介绍。同理,如果贪吃蛇的头部碰到游戏界面的最上方或者最下方时,游戏结束。 下面的frame per second 控制不同计算机的速度,如果屏蔽掉 就会很快。 fps.tick(3) 上面的代码表示当贪吃蛇的头部撞到游戏边缘时,游戏结束。最后的fps.tick(3)中的3则表示贪吃蛇移动时的速度。 4 结束语: Pygame可以使游戏的开发变得更快捷,对初学者来说更容易上手。本文描述了贪吃蛇游戏制作时要注意的点以及一些核心算法。 5 参考文献: [1]杜兰, 陈琳琳, 黄祎静. 基于Pygame的壁球游戏的设计与开发[J]. 电子技术与软件工程, 2018, No.144(22):69+217. [2] https://www.pygame.org (pygame 的官方网站) [3]瞿苏. (2019). 基于python的飞机大战游戏设计. 扬州职业大学学报, 23(01), 39-43.
简介:摘要:传承中华优秀传统文化,提高文化软实力。太极拳是集中国传统文化之大成,是中华文化的瑰宝。高校太极拳课教学,学生通过准确性习练,不仅能够用自己的肢体反映阴阳运行轨迹,而且还能够体验到阴阳相融、相承气血运行顺畅的感受,最终享受到这两大文化的神奇功效—健康。
简介:摘 要:在现今人们开始注重追求健康生活的大环境下,各项武术运动被传承发发扬。一直以来,适合中老年妇女的健身活动项目相对较少,木兰拳作为一项新型的艺术健身拳操,其在内涵上表现出了中国武术的薄大精深,在内容上丰富了武术肢体表现形式,在作用上不但可以起到强身健体、自娱自乐功效,而且有效的提高了海内外广大健身爱好者、尤其是中老年妇女的生活质量和精神情操。然而,湛江市霞山区中老年妇女在练习木兰拳的过程中能否达到健身效果一直存有争论,本文将使用文献资料法、问卷调查法、专家访谈法、实验对比法、数理统计法等方法,调查湛江市霞山区木兰拳练习者与非练习者之间的身体素质情况,根据调查数据,研究分析木兰拳对中老年妇女的健身效果,对木兰拳的练习提出改良意见。
简介:摘要:习近平总书记在党史学习教育动员大会上的重要讲话中强调,“在全党开展党史学习教育,是党的政治生活中的一件大事”。学习党史是一项党内教育的重要政治任务,是加强党员党性教育的必要方式,是推进党的自我革命、永葆党的生机活力的必然要求。结合当下新时期学习的特点,从开展调研基层党史学习教育的现状、问题入手,探索出以下针对基层行之有效的党史学习教育方式途径,提升党史学习教育的吸引力、辐射力、影响力。
简介:摘要:体用结合教学模式是一种能够将知识与实践相互融合的教学方法,它在高校体育教育活动中发挥着积极的作用。随着2001年我国开始正式推动教学体制深化改革开始,高校体育教育就迎来了创新性改革发展,“体用结合”教学模式逐渐与太极拳教学融合在一起,意在帮助学生在学习太极拳知识的同时让学生拥有一种可以强身健体的运动方法,但随着教学改革的推进,部分传统体育教学老师无法摒弃老套的应试教育思想桎梏,导致教学质量直线下降,为了避免这种问题的发生,笔者结合自身数年高校体育教学经验,浅议现阶段高校体用结合教学模式与太极拳教学统合现状,提出更为科学的教学优化方案。
简介:【摘要】高中阶段,是学生身体发展的高峰期又是心理发展的“危险期”,各种心理健康问题凸显。在高中阶段开展太极拳教学,对促进高中生的心理健康有着积极作用。可以改善学生的自信心与人际交往能力,可以控制学生的情绪,引导学生树立良好的心态,可以去除面对高考的焦虑等。本文通过查阅文献资料以及本人近几年来的教学经验总结对当前高中生不良心理健康现状及其原因来分析太极拳教学对高中生心理健康的促进作用,并进一步提出可行性建议,为全面实施“健康第一”的体育教育提供理论依据。
简介:摘要:目前在高中体育教学中有很多种运动,但是随着新课改的深化,教师在对学生进行教学时也要将中华传统文化融入进去,让学生能给学习到中华优秀传统文化中的内涵,而体育课程中的太极拳不仅仅是一项运动形式,它还蕴含着浓厚的文化精神,所以教师在对学生进行太极拳教学时要以培养学生综合素养为基础,并且利用多种方式对学生进行教学。教师要培养学生学习太极拳的兴致,然后让学生掌握其中的技能,进而能够增强学生对太极拳的理解。