MonoGame 游戏开发框架日记 -02

第二章:解读游戏文件Game1

温馨提示:

此篇文章是解读文件,如果想使用MonoGame进行长时间的开发的话,我的建议是一定要好好看看这篇文章


Game1.cs 文件

解读:

当你创建好项目(如未创建项目请先看第一篇文章)你应该会看见以下内容

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;

namespace Temp;

public class Game1 : Game
{
    private GraphicsDeviceManager _graphics;
    private SpriteBatch _spriteBatch;

    public Game1()
    {
        _graphics = new GraphicsDeviceManager(this);
        Content.RootDirectory = "Content";
        IsMouseVisible = true;
    }

    protected override void Initialize()
    {
        // TODO: Add your initialization logic here

        base.Initialize();
    }

    protected override void LoadContent()
    {
        _spriteBatch = new SpriteBatch(GraphicsDevice);

        // TODO: use this.Content to load your game content here
    }

    protected override void Update(GameTime gameTime)
    {
        if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            Exit();

        // TODO: Add your update logic here

        base.Update(gameTime);
    }

    protected override void Draw(GameTime gameTime)
    {
        GraphicsDevice.Clear(Color.CornflowerBlue);

        // TODO: Add your drawing code here

        base.Draw(gameTime);
    }
}

引用库

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;

这部分是引用必要库,提供游戏开发的必要环境

Game类

MonoGame 项目的核心是 Game 类。此类处理图形服务的初始化、游戏的初始化、加载内容、更新和渲染游戏。创建新的 MonoGame 项目时,此 Game 类将实现为可根据需要针对特定游戏进行自定义的类
此处Game1就继承至Game文件

public class Game1 : Game

渲染组件

private GraphicsDeviceManager _graphics;
private SpriteBatch _spriteBatch;

这两个是MonoGame的游戏渲染组件
GraphicsDeviceManager 此处处理游戏画面渲染
SpriteBatch 精灵管理设备,用于渲染纹理,照片等等

生命周期

首先我们要理解一个概念:生命周期 ,此处我给出一张图来解释详细关系
在这里插入图片描述
生命周期理论指的是一个生物体、组织、产品或技术等从其产生(或引入)开始,经过成长、成熟、衰退直至最终消亡的全过程。 这一过程通常被划分为几个关键阶段,每个阶段都有其特定的特征和任务。 2. 内涵解读:生命周期理论强调事物发展的动态性和阶段性。 在不同阶段,事物面临的主要问题和挑战不同,因此需要采取不同的策略和措施来应对。


MonoGame生命周期

MonoGame作为强大的开源游戏框架,经过社区各个大佬的贡献,MonoGame的游戏开发框架已经趋于稳定,且有着自己的一套生命周期,我接下来放出这一张图便是MonoGame的主要生命周期,这不仅对后续开发有很大帮助,也能对你游戏开发底层理解有着更大的帮助

MonoGame生命周期
此时你在回到开头看那个源文件代码是不是就清晰很多了?
游戏的生命周期是很普遍的一个概念,如果你之前接触过Unity或者其他的游戏引擎,你会发现他们都有着类似的生命周期,虽然有些在细节上有所不同但是本质上都是一样的

Game1.cs 代码各个部分详细功能解读

_graphics = new GraphicsDeviceManager(this)
Content.RootDirectory = "Content";
IsMouseVisible = true;

// Init函数内容
_spriteBatch = new SpriteBatch(GraphicsDevice);

第一行 : 初始化游戏图形渲染管理器
第二行:初始化游戏资源加载目录为Content
在你的游戏目录里有一个Content文件夹此处会用来存放游戏资源后续我会详细讲这个功能

第三行:设置鼠标可视化

SpriteBatch:初始化图形渲染管件为_graphics;


if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            Exit();

这个函数的意思是只要按下Esc键/手柄退出键,就执行 Exit() 退出函数,这个退出函数是MonoGame封装好的,而条件语句中:
GamePad: 游戏手柄的操作封装GetState得到当前手柄状态
Keyboard:键盘操作封装GetState得到键盘状态并检测是否按下Esc键

GraphicsDevice.Clear(Color.CornflowerBlue);

清屏,并且设置清屏后屏幕渲染的颜色


结语

接下来今天的游戏开发日记就到这了大家想想今天学了啥?这个系列会持续更新的大家别担心但是最近期末考复习,着可能是六月份的最后一篇文章了,谢谢大家观看

MonoGame的生命周期是什么?

MonoGame的渲染管件是什么?

MonoGame的键盘管理是什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值