小学生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次。
可以关注我,点赞我、评论我、收藏我啦。