首页 > 其他分享 >游戏系统代码1.0

游戏系统代码1.0

时间:2024-10-27 23:01:02浏览次数:5  
标签:1.0 游戏 代码 Vector3 System gridPosition Collections using public

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class InventoryPanel : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Drag2D : MonoBehaviour
{
    [SerializeField] private bool isSelected;
    private void onm ouseDrag()
    {
        Vector2 cursorPos = FindObjectOfType<Camera>().ScreenToWorldPoint(Input.mousePosition);
        Vector3 fixedPos = FindObjectOfType<RunGridManager>().grid.SnapToGrid(cursorPos);
        transform.position = fixedPos+new Vector3(0.5f,0.5f,0);
        if (Input.GetKeyDown(KeyCode.Space))
        {
            transform.rotation = Quaternion.Euler(0, 0, transform.eulerAngles.z - 90);
        }
    }
    public void Update()
    {
    }
}

  

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NAND : MonoBehaviour
{ 

}

  

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RunGridManager : MonoBehaviour
{
    public GridManager grid;
    // Start is called before the first frame update
    void Start()
    {
        //transform.position = FindObjectOfType<Camera>().transform.position;
        transform.position = FindObjectOfType<Camera>().ScreenToWorldPoint(new Vector3(0, 0, 0));
        grid = new GridManager(100, 100, 1, transform.position);
        grid.DrawLine();
    }

    // Update is called once per frame
    void Update()
    {
        //Debug.Log(Input.mousePosition);
        //Debug.Log(FindObjectOfType<Camera>().ScreenToWorldPoint(Input.mousePosition));
        Debug.Log(grid.GetGridPosition(FindObjectOfType<Camera>().ScreenToWorldPoint(Input.mousePosition)));
        grid.DrawLine();
    }
}

  

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEditor.Tilemaps;
using UnityEngine;

public class GridManager
{
    private Vector3 WorldPositionOfGridOrigin;
    private int gridWidth;
    private int gridHeight;
    private float cellSize;
    private enum Element { Wire,InputPine,OutputPine,Processer};
    private Transform[,] gridCells;
    public GridManager(int width,int height,float cellSize,Vector3 position)
    {
        gridWidth = width;
        gridHeight = height;
        this.cellSize = cellSize;
        WorldPositionOfGridOrigin = position;
    }
    public void GenerateGrid()
    {
        
    }
    public Vector3 GetWorldPosition(Vector2Int gridPosition)
    {
        return new Vector3(gridPosition.x * cellSize+WorldPositionOfGridOrigin.x, gridPosition.y * cellSize+WorldPositionOfGridOrigin.y,0);
    }
    public Vector2Int GetGridPosition(Vector3 worldPosition)
    {
        int x = Mathf.FloorToInt((worldPosition.x-WorldPositionOfGridOrigin.x)/cellSize);
        int y = Mathf.FloorToInt((worldPosition.y-WorldPositionOfGridOrigin.y) / cellSize);
        return new Vector2Int(x, y);
    }
    public bool IsWithinGrid(Vector2Int gridPosition)
    {
        return gridPosition.x >= 0 && gridPosition.y >= 0 && gridPosition.x < gridWidth && gridPosition.y < gridHeight;
    }
    public bool IsWithinGrid(Vector3 worldPosition)
    {
        Vector2Int gridPosition = GetGridPosition(worldPosition);
        return IsWithinGrid(gridPosition);
    }
    public Vector3 SnapToGrid(Vector3 worldPosition)
    {
        return GetWorldPosition(GetGridPosition(worldPosition));
    }
    public void DrawLine()
    {
        for(int i=0;i<gridWidth; i++)
        {
            for(int j = 0; j < gridHeight; j++)
            {
                Vector3 worldPosition = GetWorldPosition(new Vector2Int(i, j));
                Debug.DrawLine(worldPosition, new Vector3(worldPosition.x+cellSize,worldPosition.y,0));
                Debug.DrawLine(worldPosition, new Vector3(worldPosition.x, worldPosition.y + cellSize,0));
            }
        }
    }
}

  

标签:1.0,游戏,代码,Vector3,System,gridPosition,Collections,using,public
From: https://www.cnblogs.com/oucrjgc/p/18509215

相关文章

  • 2024HIT哈工大计算机网络实验(详细注释、Java代码实现)
    点此去往代码仓库,持续更新实验内容HIT计算机网络实验大部分好像都是用的C/C++代码,网上找很少看到Java的代码,或者不是很详细,所以我自己总结了一下发在了Github上,有详细注释和内容解释,还有一些写代码时的错误以及找错误的心路历程。如果能够对你有所帮助,麻烦点一点star谢谢啦......
  • python爬虫实战案例——抓取B站视频,不同清晰度抓取,实现音视频合并,超详细!(内含完整代码)
    文章目录1、任务目标2、网页分析3、代码编写1、任务目标目标网站:B站视频(https://www.bilibili.com/video/BV1se41117WP/?vd_source=e8e376ccbc5aa4cfd88e6a7917adfd1a),用于本文测验要求:抓取该网址下的视频,将其存入本地,如下:2、网页分析在分析网页前,我们需要明白......
  • 用Greenfoot(Java语言教程)编写记忆卡牌游戏【1】
    第一部分先编写出场景Like:1.首先先在World和Actor新建子类。打开游戏文档,找到images拖入图片,在Table和Card在导入你的卡牌图片,成功后如下图。2.然后打开Table和Card编译器,输出以下代码输入后应该如开头所示,因为没有输入翻牌代码所以无法游玩,但整体框架已经完成。......
  • ubuntu环境安装街机风格的太空飞船游戏(2D飞机射击游戏)游戏——Chromium_B.S.U.
    相关:https://en.wikipedia.org/wiki/Chromium_B.S.U.https://manpages.ubuntu.com/manpages/focal/en/man6/chromium-bsu.6.htmlhttps://launchpad.net/ubuntu/+source/chromium-bsu今天突然发现原来在ubuntu系统下面可以快速简单的安装《雷电》(街机风格的太空飞船游戏)游......
  • 异步游戏环境下该如何使用强化学习算法进行训练
    在使用强化学习算法进行训练时默认的都是使用同步的游戏环境,即agent手段environment的一个observation后environment是不继续向下执行的而是等待agent返回执行动作后再继续执行的,这种agent和environment在运行时保持着同步串行方式的运行模式则是同步游戏环境,而如果environment发......
  • 中值滤波python代码
    文章目录一、中值滤波二、代码实现一、中值滤波中值滤波使用了局部邻域(窗口)里的中值来代替上述局部平均法中的局部平均值。即将以该点为中心的某个窗口框住的各像素的中间值作为处理后图象中该点像素的值。能有效处理椒盐噪声。二、代码实现下图代码实现了中值滤波对......
  • 3D数学基础:图形和游戏开发(第二版)--读书笔记(1)
    简介:本书是关于3D数学、三维空间的几何和代数的入门教材。它旨在告诉你如何使用数学描述三维中的物体及其位置、方向和轨迹。这不是一本关于计算机图形学、模拟,甚至计算几何的书,但是,如果读者打算研究这些科目,那么肯定需要这里的信息。这是一本适宜视频游戏程序开发人员阅读的图......
  • 代码大全
    在学习编程的道路上,《代码大全(第二版)》如同一座灯塔,为我照亮了前行的方向。阅读这本书的过程,就像是在与一位经验丰富的导师对话,它让我对软件开发有了更为全面和深入的理解。书中强调了软件构建在软件开发中的核心地位。构建活动涵盖编码、调试、详细设计、规划构建、单元测试、集......
  • 什么是无代码开发平台
    无代码开发平台是一种提供了可视化操作和拖拽式组件的软件开发平台,旨在使应用程序的开发变得更加简单和快速,无需编写传统的代码。这类平台的目标是让非技术背景的用户也能够通过简单的操作和配置来创建应用程序,降低了软件开发的门槛,加速了应用开发的速度。一、无代码开发平台......
  • 软硬件开发面试问题大汇总篇——针对非常规八股问题的提问与应答(代码规范与生态管理)
    软硬件开发,对于编码规范、生态管理等等综合问题的考察尤为重要。阐述下环形缓冲区的用途 环形缓冲区(RingBuffer)是一种固定大小的数据结构,常用于实现数据的流式传输或临时存储。在环形缓冲区中,当到达缓冲区的末尾时,它会回绕到开始部分,从而形成一个“环”。用途总结数......