python兔子和獾_python实例-兔子和獾(塔防游戏)附源码

原文:兔子和獾大战python小游戏

英文:https://www.raywenderlich.com/24252/beginning-game-programming-for-teens-with-python

中文:http://blog.jobbole.com/46308/

贴上源码(亲试,已运行成功)

coding:utf-8

导入pygame库和一些常用的函数和常量

import pygame

from pygame.locals import *

import math

import random

初始化pygame,创建了一个窗口

pygame.init()

width, height = 640, 480

screen=pygame.display.set_mode((width, height))

pygame.display.set_caption(“game start”)

keys = [False, False, False, False]

playerpos=[100,100]

acc=[0,0]

arrows=[]

定义一个定时器,使得游戏里可以经过一段时间后就新建一只獾

badtimer=100

badtimer1=0

badguys=[[640,100]]

healthvalue=194

pygame.mixer.init()

加载本地图片

player = pygame.image.load(“F:/BB_Resources/resources/images/dude.png”)

grass = pygame.image.load(“F:/BB_Resources/resources/images/grass.png”)

castle = pygame.image.load(“F:/BB_Resources/resources/images/castle.png”)

arrow = pygame.image.load(“F:/BB_Resources/resources/images/bullet.png”)

加载獾图片

badguyimg1 = pygame.image.load(“F:/BB_Resources/resources/images/badguy.png”)

badguyimg=badguyimg1

加载健康图片

healthbar = pygame.image.load(“F:/BB_Resources/resources/images/healthbar.png”)

health = pygame.image.load(“F:/BB_Resources/resources/images/health.png”)

加载输赢图片

gameover = pygame.image.load(“F:/BB_Resources/resources/images/gameover.png”)

youwin = pygame.image.load(“F:/BB_Resources/resources/images/youwin.png”)

加载声音

hit = pygame.mixer.Sound(“F:/BB_Resources/resources/audio/explode.wav”)

enemy = pygame.mixer.Sound(“F:/BB_Resources/resources/audio/enemy.wav”)

shoot = pygame.mixer.Sound(“F:/BB_Resources/resources/audio/shoot.wav”)

hit.set_volume(0.05)

enemy.set_volume(0.05)

shoot.set_volume(0.05)

pygame.mixer.music.load(‘F:/BB_Resources/resources/audio/moonlight.wav’)

pygame.mixer.music.play(-1, 0.0)

pygame.mixer.music.set_volume(0.25)

进入循环

running = 1

exitcode = 0

while running:

badtimer-=1

5 设置黑色背景

screen.fill(0)

循环画上背景

for x in range(width/grass.get_width()+1):

for y in range(height/grass.get_height()+1):

screen.blit(grass,(x100,y100))

画上四个城堡

screen.blit(castle,(0,30))

screen.blit(castle,(0,135))

screen.blit(castle,(0,240))

screen.blit(castle,(0,345 ))

画上小兔子

玩家旋转兔子

position = pygame.mouse.get_pos()

angle = math.atan2(position[1]-(playerpos[1]+32),position[0]-(playerpos[0]+26))

playerrot = pygame.transform.rotate(player, 360-angle*57.29)

playerpos1 = (playerpos[0]-playerrot.get_rect().width/2, playerpos[1]-playerrot.get_rect().height/2)

screen.blit(playerrot, playerpos1)

画出箭头

for bullet in arrows:

index=0

velx=math.cos(bullet[0])*10

vely=math.sin(bullet[0])*10

bullet[1]+=velx

bullet[2]+=vely

if bullet[1]640 or bullet[2]480:

arrows.pop(index)

index+=1

for projectile in arrows:

arrow1 = pygame.transform.rotate(arrow, 360-projectile[0]*57.29)

screen.blit(arrow1, (projectile[1], projectile[2]))

画上獾

if badtimer==0:

badguys.append([640, random.randint(50,430)])

badtimer=100-(badtimer1*2)

if badtimer1>=35:

badtimer1=35

else:

badtimer1+=5

index=0

for badguy in badguys:

if badguy[0]

badguys.pop(index)

badguy[0]-=7

獾冲过来并且在碰到城堡的时候会消失。尽管你看不到,獾实际上会降低你的健康值。

badrect=pygame.Rect(badguyimg.get_rect())

badrect.top=badguy[1]

badrect.left=badguy[0]

if badrect.left

Original: https://blog.csdn.net/weixin_32998893/article/details/113505294
Author: 欧明新
Title: python兔子和獾_python实例-兔子和獾(塔防游戏)附源码

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/783046/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球