星际争霸之小霸王之小蜜蜂(二)--类的使用

这篇具有很好参考价值的文章主要介绍了星际争霸之小霸王之小蜜蜂(二)--类的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、将设置内容写在一个类里

 二、设置小蜜蜂的造型

 三、设置猫蜜蜂的参数

 四、绘制猫蜜蜂到窗口

 总结


前言

昨天我们设置好了窗口,下面我们需要向窗口中添加元素了。

一、将设置内容写在一个类里

 我个人理解书上的意思是要创建一个类,将所有需要设置的属性都放在这里,这样后期需要升级改变的时候,在这里修改参数就行了,例如我们昨天设置的窗口背景颜色,可以将这个参数设置放在设置类里,需要的时候再调用,这就是面向对象的编程思维。那么我们现在建立一个settings文件,在里面创建一些参数。代码如下:

class Settings():
    
    def __init__(self):
        
        self.screen_width = 800
        self.screen_height = 600
        self.bg_color = (220,220,220)

 可以看出,我们创建了窗口的长和宽,然后设置了颜色,颜色我做了修改,感觉昨天的青色不好看。现在我们需要修改alien_invasion文件里的代码,导入这个类,从而调用这些参数,我们看代码。

import sys
import pygame
import settings

def run_game():
    pygame.init()
    new_setting=settings.Settings()
    screen = pygame.display.set_mode((new_setting.screen_width,new_setting.screen_height))
    pygame.display.set_caption("Alien Invasion")

    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()

        screen.fill(new_setting.bg_color)
        pygame.display.flip()

run_game()

 可以看出,我们首先使用import导入我们创建的类,然后实例化setting类,实例为new_setting,最后通过new_setting调用提前设置好的参数。单看这一段代码来说比之前好像要复杂一点,也要难理解一点,但是当你的程序达到一定的复杂度以后,这样分类编写会更容易维护。下面我们来看一下效果。

 星际争霸之小霸王之小蜜蜂(二)--类的使用,python游戏,pygame,python,开发语言,实例,笔记

 运行成功,颜色也变成了灰色(我看是灰色)

 二、设置小蜜蜂的造型

 书上说,pygame默认使用bmp位图,使用其他的文件类型,要安装库,这么麻烦吗?在网上找一下说明看看。

pygame.image.load可以加载多种类型的图片文件,包括但不限于:

  • BMP
  • GIF
  • JPG/JPEG
  • PNG
  • TGA
  • TIFF
  • WebP

需要注意的是,如果加载的图片文件不是pygame支持的格式,将会抛出异常。

 按照网上说的,pygame支持的格式有很多啊,我们就偏偏用JPG格式试试(我个人就喜欢jpg格式)

 现在我们需要注意两点:一是背景为透明的jpg图片,二是免费的。找了半天没找到,为了不浪费时间,找了一只猫,凑合用吧,大家欣赏下。

 星际争霸之小霸王之小蜜蜂(二)--类的使用,python游戏,pygame,python,开发语言,实例,笔记

 三、设置猫蜜蜂的参数

 按照之前的编程思维,我们要创建单独的类来定义这只猫蜜蜂的各种属性,包括大小、位置、动作等。跟书上一样,我们创建ship文件,不知道为什么命名为ship,ship不是船的意思吗?

 首先我们先展示类里面的代码:

import pygame

class Ship():
    def __init__(self,screen):
        self.screen = screen
        self.image = pygame.image.load('cat.webp')
        self.rect = self.image.get_rect()
        self.screen_rect = screen.get_rect()
        self.rect.centerx = self.screen_rect.centerx
        self.rect.bottom=self.screen_rect.bottom

    def blitme(self):
        self.screen.blit(self.image,self.rect)

 这一段代码不是很好理解,书上讲的也不是很清楚,我先说说我的初步理解,后面如果发现错了,再进行解释。

首先初始化方法里传入的screen就是我们的窗口,然后我们导入我们下载好的图片“cat.webp”(我们看看这个格式能不能直接用)。

self.rect = self.image.get_rect()这段代码就是获取图片的边框,同理,下面的代码就是获取窗口的边框,然后通过centerx和bottom属性将图片实现在屏幕最下边居中对齐。

最后我们定义了blitme方法,它里面调用了pygame的blit函数,blit函数的作用就是将图片绘制到屏幕上,self.rect已经设置好了位置。

 四、绘制猫蜜蜂到窗口

 下面我们只需要在主程序调用Ship类的blitme方法就可以绘制猫蜜蜂到指定位置。

import sys
import pygame
import settings
from ship import Ship

def run_game():
    pygame.init()
    new_setting=settings.Settings()
    screen = pygame.display.set_mode((new_setting.screen_width,new_setting.screen_height))
    ship = Ship(screen)
    pygame.display.set_caption("Alien Invasion")

    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()

        screen.fill(new_setting.bg_color)
        ship.blitme()
        pygame.display.flip()

run_game()

 这段代码就没有设么好解释的了,只是调用函数。我们直接看效果。

 星际争霸之小霸王之小蜜蜂(二)--类的使用,python游戏,pygame,python,开发语言,实例,笔记

 成功了,证明图片的格式不是bmp也是可以的,但是我们的猫蜜蜂有点太大了,我们需要把它改小一点,最好在窗口里像一只小苍蝇,这里就不赘述怎么改了,我们直接看效果。

 星际争霸之小霸王之小蜜蜂(二)--类的使用,python游戏,pygame,python,开发语言,实例,笔记

 嗯,这样效果好多了。

 总结

 今天主要学习如何设置绘制图像的位置,以及如何绘制。文章来源地址https://www.toymoban.com/news/detail-658189.html

到了这里,关于星际争霸之小霸王之小蜜蜂(二)--类的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 星际争霸之小霸王之小蜜蜂(十五)--剧将终场

    星际争霸之小霸王之小蜜蜂(十四)--资本家的眼泪 星际争霸之小霸王之小蜜蜂(十三)--接着奏乐接着舞 星际争霸之小霸王之小蜜蜂(十二)--猫有九条命  星际争霸之小霸王之小蜜蜂(十一)--杀杀杀  星际争霸之小霸王之小蜜蜂(十)--鼠道 星际争霸之小霸王之小蜜蜂(

    2024年02月08日
    浏览(39)
  • 星际争霸之小霸王之小蜜蜂(二)--类的使用

    目录 前言 一、将设置内容写在一个类里  二、设置小蜜蜂的造型  三、设置猫蜜蜂的参数  四、绘制猫蜜蜂到窗口  总结 前言 昨天我们设置好了窗口,下面我们需要向窗口中添加元素了。  我个人理解书上的意思是要创建一个类,将所有需要设置的属性都放在这里,这样后

    2024年02月12日
    浏览(37)
  • 星际争霸之小霸王之小蜜蜂(十六)--狂奔的花猫

    星际争霸之小霸王之小蜜蜂(十五)--剧将终场 星际争霸之小霸王之小蜜蜂(十四)--资本家的眼泪 星际争霸之小霸王之小蜜蜂(十三)--接着奏乐接着舞 星际争霸之小霸王之小蜜蜂(十二)--猫有九条命   星际争霸之小霸王之小蜜蜂(十一)--杀杀杀  星际争霸之小霸王之

    2024年02月08日
    浏览(36)
  • 星际争霸之小霸王之小蜜蜂(七)--消失的子弹

    目录 前言  一、删除子弹  二、限制子弹数量  三、继续重构代码 总结 昨天我们已经让子弹飞了起来,但是会面临一个和之前小蜜蜂一样的问题,小蜜蜂的行动应该限制在窗口内,那么子弹也是有相同之处,也需要限制一个移动范围,当超出范围之后,就要将其消灭,释放

    2024年02月09日
    浏览(33)
  • 星际争霸之小霸王之小蜜蜂(十二)--猫有九条命

    星际争霸之小霸王之小蜜蜂(十一)--杀杀杀  星际争霸之小霸王之小蜜蜂(十)--鼠道 星际争霸之小霸王之小蜜蜂(九)--狂鼠之灾  星际争霸之小霸王之小蜜蜂(八)--蓝皮鼠和大脸猫   星际争霸之小霸王之小蜜蜂(七)--消失的子弹  星际争霸之小霸王之小蜜蜂(六)

    2024年02月08日
    浏览(33)
  • 星际争霸之小霸王之小蜜蜂(一)--窗口界面设计

    目录   前言 一、安装pygame库  1、pygame库简介  2、在windows系统安装pygame库 二 、搭建游戏框架 1、创建游戏窗口   2、改变窗口颜色  总结 前言 大家应该都看过或者都听说过python神书“大蟒蛇”,上面有一个案例是《外星人入侵》,游戏介绍让我想起了上学时候玩过的星际

    2024年02月12日
    浏览(32)
  • 星际争霸之小霸王之小蜜蜂(十三)--接着奏乐接着舞

    星际争霸之小霸王之小蜜蜂(十二)--猫有九条命  星际争霸之小霸王之小蜜蜂(十一)--杀杀杀  星际争霸之小霸王之小蜜蜂(十)--鼠道 星际争霸之小霸王之小蜜蜂(九)--狂鼠之灾  星际争霸之小霸王之小蜜蜂(八)--蓝皮鼠和大脸猫  星际争霸之小霸王之小蜜蜂(七)

    2024年02月08日
    浏览(35)
  • 星际争霸之小霸王之小蜜蜂(四)--事件监听-让小蜜蜂动起来

    目录 前言 一、监听按键并作出判断  二、持续移动  三、左右移动  总结: 前言 今天开始正式操控我们的小蜜蜂了,之前学java的时候是有一个函数监听鼠标和键盘的操作,我们通过传过来不同的值进行判断,现在来看看python是否一样的实现。  以我浅薄的知识判断,流程

    2024年02月12日
    浏览(41)
  • 星际争霸之小霸王之小蜜蜂(八)--蓝皮鼠和大脸猫

     星际争霸之小霸王之小蜜蜂(七)--消失的子弹  星际争霸之小霸王之小蜜蜂(六)--让子弹飞  星际争霸之小霸王之小蜜蜂(五)--为小蜜蜂降速  星际争霸之小霸王之小蜜蜂(四)--事件监听-让小蜜蜂动起来 目录  前言 一、寻找图片  二、创建Alien类  三、小老鼠实例化

    2024年02月11日
    浏览(34)
  • AI强化学习初探——卡牌游戏星际争霸II

    作者:禅与计算机程序设计艺术 在AI技术领域,强化学习(Reinforcement Learning)是最具代表性的一种机器学习方法。其核心思想是通过反馈机制让智能体(Agent)不断修正策略,使得它不断地按照既定目标策略进行行动,以达到最优状态的优化。常见的强化学习算法如Q-learnin

    2024年02月07日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包