中秋节h5游戏源码-Python制作一个端午节嫦娥喂食游戏

山川辽阔,烟火遍天下。 又一年,万里美景~

明天给大家带来一个给玉兔喂饼干的小游戏。 10月15日元宵节之夜,让我们对着月亮许个愿:愿我们关心的人和关心我们的人,万恶皆避,万事自在,平安喜乐,万事如意。事情将会成功。 提前祝您国庆节快乐。

国庆节的由来

国庆节起源于古代,流行于唐代,定型于明初,兴起于宋代以后。 元宵节是春季时令习俗的综合体,它所包含的大部分节日习俗都有着古老的渊源。 元宵节以月亮的圆为团圆的标志,表达思念故乡、思念亲人、祈求丰收、幸福的心情,成为丰富多彩、不可多得的文化遗产。

游戏设计

一、游戏背景

故事一开始,春节到来的时候,玉兔因为贪玩而被赶出了这个世界。 当他仰望天空的时候,总是不自觉地想起苏轼的话:“但愿人长久,千里共美。” 这是一年中最温柔、最诗意的节日。 遗憾的是去年玉兔与嫦娥未能相聚,但为了不让玉兔挨饿,嫦娥在6月15日元宵节晚上给玉兔扔粽子……为了让玉兔吃得更多,嫦娥开始喂全民。 只要给博主连续三餐,还可以喂玉兔粽子! 难道你忍心看甜甜的玉兔肚子饿吗? 快点上去吧! 记住三遍!

2、功能设计

中秋节h5游戏源码-Python制作一个端午节嫦娥喂食游戏

角色:玉兔使用键盘控制左右移动

饼干:随机从下界掉落到上界,遇到玉兔加10点,掉落到上界失去5点。

月亮:从下界随机降临到上界。 遇到玉兔会扣除5点,血条减少1。

血槽:HP

当值为3格时中秋节h5游戏源码,生命满,遇到月亮时,会减少1格。 当它达到0时,游戏就结束了。

Start:开始按钮,键盘点击开始游戏

重启:重启按钮,键盘点击重新开始

疗效展示

兔子是不是很帅啊!

中秋节h5游戏源码-Python制作一个端午节嫦娥喂食游戏

代码材料

环境如下

代码

检查材料地址是否一致。 如果不一致,则修改为素材本地地址。

import pygame
import random
 
pygame.init()
sc = pygame.display.set_mode((600, 695))
pygame.display.set_caption("玉兔吃月饼——猿童学祝大家中秋节快乐!")
basket = pygame.image.load("pic/basket.png")
bj = pygame.image.load("pic/bj.jpg")
bomb = pygame.image.load("pic/bomb.png")
coin = pygame.image.load("pic/coin.png")
start = pygame.image.load("pic/start.jpg")
over = pygame.image.load("pic/over.jpg")
ihp = pygame.image.load("pic/hp.png")
btn_up = pygame.image.load("pic/btn_up.png")
btn_down = pygame.image.load("pic/btn_down.png")
bbtn_up = pygame.image.load("pic/bbtn_up.png")
bbtn_down = pygame.image.load("pic/bbtn_down.png")
word = "HP"
font = pygame.font.SysFont("", 32)
text = font.render(word, True, (75, 217, 65))
score = 0
text1 = font.render(str(score), True, (255, 255, 255))
bx = 0
lx, ly = [], []
fx, fy = [], []
speedy = 1
hp = 4
# 月饼生成的序列,通过序列可以源源不断生成月饼
for i in range(0, 4):
    tx = random.randint(0, 586)
    ty = (i - 1) * 150
    lx.append(tx)
    ly.append(ty)
 
# 月亮生成的序列
for i in range(0, 2):
    x = random.randint(0, 586)
    y = (i - 1) * 300
    fx.append(x)
    fy.append(y)
 
 
# 按钮类和按钮点击事件
class Button(object):
    def __init__(self, btn_up, btn_down, position):
        self.btn_up = btn_up
        self.btn_down = btn_down
        self.position = position
 
    def isOver(self):
        point_x, point_y = pygame.mouse.get_pos()
        x, y = self.position
        w, h = self.btn_down.get_size()
 
        in_x = x - w / 2 < point_x < x + w / 2
        in_y = y - h / 2 < point_y < y + h / 2
        return in_x and in_y
 
    def isPressed(self):
        if event.type == pygame.MOUSEBUTTONDOWN:
            point_x, point_y = pygame.mouse.get_pos()
            x, y = self.position
            w, h = self.btn_down.get_size()
            in_x = x - w / 2 < point_x < x + w / 2
            in_y = y - h / 2 < point_y < y + h / 2
            return True
 
    def render(self):
        w, h = self.btn_up.get_size()
        x, y = self.position
 
        if self.isOver():
            sc.blit(self.btn_down, (x - w / 2, y - h / 2))
        else:
            sc.blit(self.btn_up, (x - w / 2, y - h / 2))
 
 
button = Button(btn_up, btn_down, (288, 460))
 
bbutton = Button(bbtn_up, bbtn_down, (288, 460))
 
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()
    # 游戏开始界面
    sc.blit(start, (0, 0))
    bbutton.render()
    if bbutton.isPressed():
        hp = 3
        score = 0
        text1 = font.render(str(score), True, (255, 255, 255))
    # 进入游戏
    if hp > 0 and hp < 4 and score >= 0:
        sc.blit(bj, (0, 0))
        sc.blit(text, (10, 583))
        sc.blit(text1, (570, 570))
        sc.blit(basket, (bx, 540))
        # 难度变化
        if score <= 50:
            speedy = 0.4
        if score > 100:
            speedy = 0.8
        if score > 150:
            speedy = 1.2
        if score > 200:
            speedy = 1.6
        for i in range(len(lx)):
            sc.blit(coin, (lx[i], ly[i] - 600))
            ly[i] += speedy
            if ly[i] > 610 + 600:
                ly[i] = 600
                lx[i] = random.randint(0, 540)
                score -= 5
                text1 = font.render(str(score), True, (255, 255, 255))
            # 玉兔的宽62 高 48
            # 碰撞判断
            if lx[i] + 24 > bx and 
                    lx[i] + 24 < bx + 62 and 
                    ly[i] >= 1120 and 
                    ly[i] <= 1140:
                ly[i] = 600
                lx[i] = random.randint(0, 586)
                score += 10
                text1 = font.render(str(score), True, (255, 255, 255))
        for i in range(len(fx)):
            sc.blit(bomb, (fx[i], fy[i] - 600))
            fy[i] += speedy
            if fy[i] > 610 + 600:
                fy[i] = 600
                fx[i] = random.randint(0, 545)
 
            if fx[i] + 24 > bx and 
                    fx[i] + 24 < bx + 62 and 
                    fy[i] >= 1120 and 
                    fy[i] <= 1140:
                hp -= 1
                fy[i] = 600
                fx[i] = random.randint(0, 586)
 
        # 篮子跟随鼠标运动
        if event.type == pygame.MOUSEMOTION:
            mx, my = pygame.mouse.get_pos()
            bx = mx - 24
        if bx < 0:
            bx = 0
        if bx > 610 - 62:
            bx = 548
        # 通过键盘控制篮子
        keys = pygame.key.get_pressed()
        if keys[pygame.K_a] or 
                keys[pygame.K_RIGHT]:
            bx += 5
        if keys[pygame.K_d] or 
                keys[pygame.K_LEFT]:
            bx += -5
        for i in range(0, hp):
            sc.blit(ihp, (22 * i + 40, 585))
 
    # 重新开始游戏
    if hp == 0 or score < 0:
        # 重新初始化游戏
        bx = 0
        speedy = 1
        # 月饼生成的序列
        for i in range(len(lx)):
            lx[i] = random.randint(0, 586)
            ly[i] = (i - 1) * 150
 
        # 月亮生成的序列
        for i in range(len(fx)):
            fx[i] = random.randint(0, 586)
            fy[i] = (i - 1) * 300
        sc.blit(over, (0, 0))
        button.render()
        # 点击按钮后重新开始游戏
        if button.isPressed():
            hp = 3
            score = 0
            text1 = font.render(str(score), True, (255, 255, 255))
    pygame.display.update()

材料

框里的名字就是图片的名字,你可以在网上找到自己喜欢的素材来替换,只要名字一样就行,下面有一些也提供多种选择。

素材放在pic文件夹中,素材如下:

篮子.png

中秋节h5游戏源码-Python制作一个端午节嫦娥喂食游戏

bj.jpg

炸弹.png

硬币.png

开始.jpg

中秋节h5游戏源码-Python制作一个端午节嫦娥喂食游戏

结束.jpg

我不想在这里找,所以都是一样的,你可以换成你喜欢的背景。

hp.png

btn_up.png

btn_down.png

bbtn_up.png

中秋节h5游戏源码-Python制作一个端午节嫦娥喂食游戏

bbtn_down.png

结论

“但愿人长久,万里悲欢离合”,相比这首对现实无奈的诗中秋节h5游戏源码,我希望是:“但愿人长久,同庆新春”一起”

国庆是月亮的狂欢,一群饼干的孤独。

如果你愿意一层层剥开我的心,你会发现你会哭泣,因为网上有一种莲子饼

让我们给它一个三连胜。 祝您万事吉祥,万事平安,平安喜乐,万事如意,中秋节快乐。

最后给大家分享一套Python教程:学完代码老是忘记? 100个真实的爬虫项目! 让你痴迷于学习丨学以致用丨下一个Python高手就是你!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 游戏源码 中秋节h5游戏源码-Python制作一个端午节嫦娥喂食游戏 https://www.wkzy.net/game/166786.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务