python小游戏#魔兽游戏#英雄联盟lol#地图

下面是游戏运行截图


初始化界面

import pygame
import random
import mathpygame.init()
#1. 初始化界面
screen = pygame.display.set_mode((1300, 800), 0, 32)
#创建了一个窗口
pygame.display.set_caption('魔兽')#程序名称
#设置窗口标题
#背景
background_image_filename = 'LOL.png'
mouse_image_filename = '1.png'
mouse_cursor = pygame.image.load(mouse_image_filename).convert_alpha()
#鼠标右键位置pygame.mixer.music.load('bao.mp3')
#加载并转换图像#地图
mapIng = pygame.image.load('LOL.png')
bgX = -495
bgY = -317
mapstep = 0
mapstep2 = 0
ps1 = 0
ps2 = 0#英雄
playerImg = pygame.image.load('player.png')
playerX = 400 #玩家的X坐标
playerY = 400 #玩家的Y坐标
playerStep = 0
playerStep2 = 0score = 0
font = pygame.font.SysFont('simsunnsimsun',32)
#font = pygame.font.SysFont('simsunnsimsun',32) #宋体

显示分数

def show_score():text = f"Score: {score}"score_render = font.render(text, True, (0,255,0))screen.blit(score_render, (10,10))

游戏结束

is_over = False
over_font = pygame.font.Font('freesansbold.ttf', 64)
def check_is_over():if is_over:text = "Game Over "render = over_font.render(text,True,(255,0,0))screen.blit(render, (200,250))# 两个点之间的距离
def distance(bx, by, ex, ey):a = bx - exb = by - eyreturn math.sqrt(a * a + b * b)  # 开根号

技能类

class Bullet():def __init__(self):self.img = pygame.image.load('bullet.png')self.x = playerX + 150self.y = playerY - 30self.step = 30#击中def hit(self):global scorefor e in enemies:if(distance(self.x, self.y, e.x, e.y) < 60):pygame.mixer.music.play()e.reset()score += 1print(score)
bullets = []

显示技能

def show_bullets():for b in bullets:screen.blit(b.img, (b.x, b.y))b.hit() #看看是否击中了敌人b.x += b.step #移动子弹#判断子弹是否出了界面,如果出了就移除掉if b.x-playerX>300:bullets.remove(b)

敌人类

number_of_enemies = 2  # 敌人的数量
class Enemy():def __init__(self):self.img = pygame.image.load('enemy.png')self.x = random.randint(20, 1000)self.y = random.randint(20, 700)self.step = random.randint(1, 2)# 当被射中时,恢复位置def reset(self):self.x = random.randint(50, 1000)self.y = random.randint(50, 700)

敌人

def show_enemy():global is_overfor e in enemies:screen.blit(e.img,(e.x, e.y))e.x += e.stepe.y += e.stepif(e.x > 1200 or e.x < 0) or (e.y >700 or e.y < 0):e.step *= -1if distance(playerX, playerY, e.x, e.y) < 80:is_over = Trueprint("游戏结束啦")enemies.clear()

地图

def map():global bgXglobal bgYbgX += mapstepbgY += mapstep2if bgX < -980:bgX = -980if bgX > 0:bgX = 0if bgY < -600:bgY = -600if bgY >0:bgY = 0
enemies = [] #保存所有的敌人
for i in range(number_of_enemies):enemies.append(Enemy())

鼠标

def mouse():x, y = pygame.mouse.get_pos()x -= mouse_cursor.get_width() / 2y -= mouse_cursor.get_height() / 2# 计算光标的左上角位置screen.blit(mouse_cursor, (x, y))# 把光标画上去

英雄

def move_player():global playerXglobal playerYplayerX += playerStepplayerY -= playerStep2#防止英雄出界if playerX > 1200:playerX = 1200if playerX < 0:playerX = 0if playerY > 700:playerY = 700if playerY < 0:playerY = 0

游戏主循环

speed = 5
running = True
while running:for event in pygame.event.get():if event.type == pygame.QUIT:running = Falsemapstep = 0mapstep2 = 0gs2 = 0gs1 = 0x, y = pygame.mouse.get_pos()if y < 20:mapstep2 = speedgs2 = -speedif y > 700:mapstep2 = -speedgs2 = speedif x < 20:mapstep = speedgs1 = speedif x > 1200:mapstep = -speedgs1 = -speedif event.type == pygame.KEYDOWN:if event.key == pygame.K_SPACE:print("使用技能")bullets.append(Bullet())#英雄移动if event.type == pygame.MOUSEBUTTONDOWN:pressed_array = pygame.mouse.get_pressed()for index in range(len(pressed_array)):if pressed_array[index]:if index == 0:print('Pressed LEFT Button!')elif index == 1:print('The mouse wheel Pressed!' )elif index == 2:print('Pressed RIGHT Button!')mouse_x1, mouse_y1 = pygame.mouse.get_pos()if (mouse_x1 - playerX > 10):ps1 = 5if (mouse_x1 - playerX < -10):ps1 = -5if (mouse_y1-playerY > 10 ):ps2 = -5if (mouse_y1 - playerY <-10):ps2 = 5if event.type == pygame.KEYDOWN:  # 按下就移动if event.key == pygame.K_RIGHT:ps1 = 5elif event.key == pygame.K_LEFT:ps1 = -5elif event.key == pygame.K_UP:ps2 = 5elif event.key == pygame.K_DOWN:ps2 = -5if event.type == pygame.KEYUP:  # 抬起来就不动ps1 = 0ps2 = 0playerStep = ps1 + gs1playerStep2 =ps2 + gs2screen.blit(mapIng, (bgX, bgY))screen.blit(playerImg, (playerX, playerY))mouse()#鼠标map()#移动地图move_player()#移动玩家show_bullets()#释放技能show_enemy()#显示敌人show_score()#显示分数check_is_over()#显示游戏结束字段pygame.display.update()#刷新一下画面

python#魔兽游戏#英雄联盟lol#地图相关推荐

  1. python爬取英雄联盟手游的全英雄皮肤 初识selenium

    python爬取英雄联盟手游的全英雄皮肤 前言 分析页面 具体代码 下载工具类 获取英雄列表的每个英雄 获取英雄皮肤链接并下载 完整代码 成果 总结 前言 近期这个鸽了好久的英雄联盟手游终于上线了,虽 ...

  2. 英雄联盟LOL地图修改.三种地图任由你改.

    这个方法是我最近才研究出来的,自己也一直在用.每天玩这个英雄联盟,看着召唤师峡谷这张地图是不是有些厌倦了呢?我就有这种感觉,现在我来教大家吧. 召唤师峡谷的冬天 是不是有种很清新的感觉? 我来教大家怎 ...

  3. linux运行国服英雄联盟,从UKUI 3.0桌面截图当中得知,Linux能运行腾讯游戏英雄联盟了...

    你没有看错,腾讯游戏英雄联盟在Linux操作系统中也能正常运行了,这一消息是从优麒麟UKUI 3.0桌面环境截图当中得知的,请看下图: 有网友评论称:在UKUI 3.0的商店中发现了腾讯游戏英雄联盟的 ...

  4. Python爬取英雄联盟全皮肤

    Python爬取英雄联盟皮肤 打开英雄联盟官网:https://lol.qq.com,点击游戏资料,按F12进入开发者模式.刷新,找到hero_list.js,里面有我们需要的网址以及其他信息. 代码 ...

  5. python 游戏辅助lol_用Python爬取英雄联盟(lol)全部皮肤

    小三:"怎么了小二?一副无精打采的样子!" 小二:"唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中很多皮肤都需要花钱买,但是我钱不够呀..." 小三 ...

  6. 如何运用python爬游戏皮肤_用Python爬取英雄联盟(lol)全部皮肤

    小三:"怎么了小二?一副无精打采的样子!" 小二:"唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中很多皮肤都需要花钱买,但是我钱不够呀..." 小三 ...

  7. python爬取英雄联盟所有皮肤价格表_实用Python是如何爬取英雄联盟(lol)所有皮肤,涨知识了...

    小三:"怎么了小二?一副无精打彩的样子!"html 小二:"唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中不少皮肤都须要花钱买,可是我钱不够呀..." ...

  8. python爬取英雄联盟所有皮肤价格表_实用Python是如何爬取英雄联盟(lol)全部皮肤,涨知识了...

    小三:"怎么了小二?一副无精打采的样子!" 小二:"唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中很多皮肤都需要花钱买,但是我钱不够呀..." 小三 ...

  9. Python爬虫实战| Python爬取英雄联盟高清壁纸

    先看一下最终爬取的效果,每个英雄的壁纸都被爬取下来了: "黑暗之女 安妮"的12张壁纸: 高清大图: 下面开始正式教学! 版本:Python 3.5 工具:Jupyter note ...

  10. python爬取英雄联盟所有皮肤价格表_用Python爬取英雄联盟(lol)全部皮肤

    小三:"怎么了小二?一副无精打采的样子!" 小二:"唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中很多皮肤都需要花钱买,但是我钱不够呀..." 小三 ...

最新文章

  1. perfmon 端口修改_Jmeter 5.3 服务器资源监控插件 PerfMon 使用介绍
  2. 如何选择正确的RAID级别
  3. 测量几种不同颜色的LED的V-A 曲线,以及它们作为STM32的P2(Boot1)下拉电阻
  4. hihocoder1718 最长一次上升子序列
  5. C语言希尔排序(解析)
  6. TensorFlow学习笔记(十八)tf.reshape矩阵变形
  7. vue实现侧边折叠菜单栏手风琴效果
  8. P2831-愤怒的小鸟【状压dp】
  9. ApiController得到服务器端绝对路径
  10. 升级python以及安装anaconda
  11. 10个微型计算机应用的例子,微型计算机原理与接技术版简答题.doc
  12. 二分查找算法(Java)
  13. 一款简约大气的PHP短网址系统程序源码
  14. java 微信主动推送消息_java微信主动推送消息,java微信主动推送消息怎么实现?
  15. 408复习策略(强化阶段)
  16. XML实现异构数据库间转换的实现与分析
  17. hgame2021 week2 pwn刷题
  18. 肠道菌群失衡的症状、原因和自然改善
  19. DM数据库安装、踩雷、解决办法
  20. 阿里支付系统就该这么设计(万能通用),稳的一批!

热门文章

  1. YARN : FairScheduler深入解析(队列维护,demand、fair share计算)
  2. 解决小程序直播组件live-player全屏问题
  3. 4、c++头文件、源文件使用小记
  4. android指纹测试,Android指纹识别
  5. GraphQL学习过程应该是这样的 1
  6. WP短代码实现“chat”文章聊天形式 文章也能活跃起来
  7. 32位操作系统电脑上的打印机如何共享给64位操作系统的电脑想要使用_hudingyin_新浪博客
  8. ERP Qt实现之路 前言
  9. uva10105-多项式系数
  10. Excel如何批量删除公式只保留数值