C#启程—游戏开发笔记

文章目录

  • ide
    • Rider
    • 下载和安装
    • 创建C#基础工程(包含form)
    • Rider去除语法警告
  • C#笔记
    • namespace
    • 找不到某个class(命名空间)
    • c#相对路径(比较特别)
    • 双缓存技术
  • 窗体事件绑定
    • 窗体初始属性
    • 方法生成
    • 调式绑定事件成功
  • 窗体中调试功能实现
    • 说明
    • 实例代码
    • 正常使用

ide

Rider

ide我们选择Rider
为何不选vs?vs占硬盘内存太高了(20多G),而且Rider也是jetbrains的产品,idea用的多了,就非常推荐使用Rider

C#启程—游戏开发笔记_第1张图片

下载和安装

下载
Rider

安装使用我就不再废话了,自己去网上找吧,我用的微信公众号“IT码徒”

创建C#基础工程(包含form)

不要用Framework工程,因为不能安装新的nuget包,他是框架工程,应该是只能使用自己私有的包

C#启程—游戏开发笔记_第2张图片

C#启程—游戏开发笔记_第3张图片

写代码的话自己新建一个类
C#启程—游戏开发笔记_第4张图片

Rider去除语法警告

setting
code style
c#

C#启程—游戏开发笔记_第5张图片

C#笔记

namespace

C#启程—游戏开发笔记_第6张图片

C#启程—游戏开发笔记_第7张图片

找不到某个class(命名空间)

遇到问题

C#启程—游戏开发笔记_第8张图片

解决方案
alt+enter,选择nuget即可,Rider会联网下载此类包

C#启程—游戏开发笔记_第9张图片

C#启程—游戏开发笔记_第10张图片

安装成功

C#启程—游戏开发笔记_第11张图片

c#相对路径(比较特别)

我们需要得到c#得工作路径后,计算相对路径,然后获得相对路径的文件

示例代码

        // 获得工作路径
        // string s = System.Environment.CurrentDirectory;
        // 值为D:\Study\GitCode\c-sharp_programe_games\Development_Plane_Games\bin\Debug\net7.0-windows
        
        // 注意相对路径
        Bitmap bitmap = new Bitmap("../resource/20170804112846536.png");

路径演示

C#启程—游戏开发笔记_第12张图片

双缓存技术

C#启程—游戏开发笔记_第13张图片
C#启程—游戏开发笔记_第14张图片

源码展示

    private void Draw(int x,int y)
    {   
        // 每次重画图片,刷新一次pictureBox对象,考虑到帧数问题,我们要使用双缓存技术
        // pictureBox.Refresh();
        
        // 获得工作路径
        // string s = System.Environment.CurrentDirectory;
        // 值为D:\Study\GitCode\c-sharp_programe_games\Development_Plane_Games\bin\Debug\net7.0-windows
        
        // 注意相对路径
        Bitmap bitmap = new Bitmap("../resource/img/role/bairen.png");
        bitmap.SetResolution(300,300);
        //创建在pictureBox上的图像graphics
        Graphics graphics = pictureBox.CreateGraphics();
        
        //将图像画在内存上,并使graphics为pictureBox上的图像
        BufferedGraphicsContext currentContent = BufferedGraphicsManager.Current;
        BufferedGraphics myBuffer = currentContent.Allocate(graphics,this.DisplayRectangle);
        Graphics graphicsChangs = myBuffer.Graphics;

        //这里位置我们用当前窗体的变量
        // graphics.DrawImage(bitmap, x, y);
        graphicsChangs.DrawImage(bitmap, x, y);
        
        //显示图片并释放资源
        myBuffer.Render();
        myBuffer.Dispose();
    }

窗体事件绑定

窗体初始属性

C#启程—游戏开发笔记_第15张图片

方法生成

C#启程—游戏开发笔记_第16张图片

然后里面就可以写业务了

C#启程—游戏开发笔记_第17张图片

调式绑定事件成功

C#启程—游戏开发笔记_第18张图片

窗体中调试功能实现

说明

需要为单个窗体关联一个控制台

实例代码

using System.Runtime.InteropServices;
public partial class Form1 : Form
{
    //实现控制台调试功能
    [DllImport("kernel32.dll")]
    public static extern bool AllocConsole();
    
    public Form1()
    {
        AllocConsole(); //关联一个控制台窗口用于显示信息
        
        //初始化窗体基本信息
        InitializeComponent();
    }
}

正常使用

C#启程—游戏开发笔记_第19张图片

你可能感兴趣的:(c#)