小学生python游戏编程arcade----是否全屏显示

前言

接上篇文章继续解绍arcade游戏编程的基本知识。准备显示英语单词,让小朋友根据提示打敌人或救朋友,完成系列任务的同时,学习英语单词。此节讲如何进行游戏是否全屏显示

小学生python游戏编程arcade----是否全屏显示

1、显示方式的实现

1.1增加fullscreen=True参数,是否全屏方式打开
    super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE, **fullscreen=True)**
   初始时获取宽高参数
    width, height = self.get_size()
    self.set_viewport(0, width, 0, height)
1.2 on_draw()时
def on_draw(self):
    self.clear()

    # 获取视口尺寸
    left, screen_width, bottom, screen_height = self.get_viewport()
1.3 效果图

在这里插入图片描述

1.4 代码实现
"""
全屏显示
"""

import arcade
import os

SPRITE_SCALING = 0.5

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
SCREEN_TITLE = "全屏显示"



class MyGame(arcade.Window):


    def __init__(self):
        # fullscreen=True 全屏方式打开
        super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE, fullscreen=True)

        # 文件打开路径
        file_path = os.path.dirname(os.path.abspath(__file__))
        os.chdir(file_path)

        # 这将获得窗口的大小,并将视口设置为匹配。
        # #因此,如果窗口是1000x1000,那么我们的视口也是如此。如果
        # 想要一些不同的东西,那么需要使用这些坐标。
        width, height = self.get_size()
        self.set_viewport(0, width, 0, height)

        arcade.set_background_color(arcade.color.AMAZON)
        self.example_image = arcade.load_texture("images/坦克.png")

    def on_draw(self):
        self.clear()

        # 获取视口尺寸
        left, screen_width, bottom, screen_height = self.get_viewport()

        text_size = 18
        # 提示
        arcade.draw_text("按F键在全屏和窗口模式之间切换,非拉伸模式",
                         screen_width // 2, screen_height // 2 - 20,
                         arcade.color.WHITE, text_size, anchor_x="center")
        arcade.draw_text("按S在全屏和窗口模式之间切换,拉伸模式",
                         screen_width // 2, screen_height // 2 + 20,
                         arcade.color.WHITE, text_size, anchor_x="center")

        # 在底部画一些方框,以便我们可以看到它们的变化
        for x in range(64, 800, 128):
            y = 64
            width = 127
            height = 243
            arcade.draw_texture_rectangle(x, y, width, height, self.example_image)

    def on_key_press(self, key, modifiers):

        if key == arcade.key.F:
            self.set_fullscreen(not self.fullscreen)

            width, height = self.get_size()
            self.set_viewport(0, width, 0, height)

        if key == arcade.key.S:
            self.set_fullscreen(not self.fullscreen)

            # 不是一对一映射,而是拉伸/挤压窗口以匹配常数。这不考虑纵横比。你需要
            # 为此做点数学计算。
            self.set_viewport(0, SCREEN_WIDTH, 0, SCREEN_HEIGHT)


def main():
    """ Main function """
    MyGame()
    arcade.run()


if __name__ == "__main__":
    main()

源码获取

关注博主后,私聊博主免费获取
需要技术指导,育娃新思考,企业软件合作等更多服务请联系博主

今天是以此模板持续更新此育儿专栏的第 23/50次。
可以关注我,点赞我、评论我、收藏我啦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信息化未来

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值