/// <summary> /// コンストラクタ /// </summary> /// <param name="cellPos">セルの座標</param> public Character(Vector2DI cellPos) { CellPosition = cellPos; Position = CellPosition.To2DF() * CellSize; //微調整 Position += new Vector2DF(0.3f, -0.7f) * CellSize / 2; }
// External public Tile GetNearbyTile(Vector2DI inDirection) { if (_chunk == null) { _chunk = World.GetChunk(chunkPosition); } return(_chunk.data.GetTile(localPosition.x + inDirection.x, localPosition.y + inDirection.y)); }
// External public Chunk GenerateChunk(Vector2DI inChunkPos) { Chunk.Data newChunkData = _chunkDataGenerator.Generate(inChunkPos); Chunk.View newChunkView = _chunkViewGenerator.Generate(inChunkPos, newChunkData); Chunk newChunk = new Chunk(newChunkData, newChunkView, _world); return(newChunk); }
// External public static float[,] Generate(uint inSize, Parameters inParameters, Vector2DI inOffset) { // TODO: Find a perlin noise lib and use it //uint scale = inParameters.scale; //uint octaves = inParameters.octaves; //float persistance = inParameters.persistance; //float lacunarity = inParameters.lacunarity; // //float amplitude = 1; // System.Random rng = new System.Random((int)inParameters.seed); //Vector2[] octaveOffsets = new Vector2[octaves]; //for (int i = 0; i < octaves; i++) //{ // float octaveOffsetX = rng.Next(-100000, 100000) + (inOffset.x * inSize); // float octaveOffsetY = rng.Next(-100000, 100000) - (inOffset.y * inSize); // octaveOffsets[i] = new Vector2(octaveOffsetX, octaveOffsetY); // // amplitude *= persistance; //} // ////inSize += 1; float[,] noiseMap = new float[inSize, inSize]; // float halfSize = inSize / 2f; // for (int y = 0; y < inSize; y++) { for (int x = 0; x < inSize; x++) { noiseMap[x, y] = rng.Next(0, 2); // amplitude = 1; // float frequency = 1; // float noiseHeight = 0; // // for (int i = 0; i < octaves; i++) // { // float sampleX = (x - halfSize + octaveOffsets[i].x) / scale * frequency; // float sampleY = (y - halfSize + octaveOffsets[i].y) / scale * frequency; // // float perlinValue = Mathf.PerlinNoise(sampleX, sampleY); // noiseHeight += perlinValue * amplitude; // // amplitude *= persistance; // frequency *= lacunarity; // } // // noiseMap[x, y] = noiseHeight * inParameters.rangeMultiplier; } } // return(noiseMap); }
// Exposed public Chunk.Data Generate(Vector2DI inChunkPos) { Chunk.Data newChunkData = new Chunk.Data(inChunkPos); NoiseGenerator.Output chunkNoiseData = _noiseGenerator.Generate(inChunkPos); TileMapGenerator.Output chunkTileMapData = _tileMapGenerator.Generate(inChunkPos, chunkNoiseData); newChunkData.SetTiles(chunkTileMapData.tiles); return(newChunkData); }
// External public Output Generate(Vector2DI inChunkPos, NoiseGenerator.Output inNoiseData) { Output newOutput = new Output(_chunkSize); for (int y = 0; y < _chunkSize; y++) { for (int x = 0; x < _chunkSize; x++) { newOutput.tiles[x, y] = new Tile(new Vector2DI(x, y), inChunkPos, new Terrain(TerrainGenerator.GetTerrainType(inNoiseData.heightMap[x, y]))); } } return(newOutput); }
// External public Chunk.View Generate(Vector2DI inPosition, Chunk.Data inChunkData) { GameObject newChunkGO = new GameObject("Chunk"); MeshFilter meshFilter = newChunkGO.AddComponent <MeshFilter>(); MeshRenderer meshRenderer = newChunkGO.AddComponent <MeshRenderer>(); meshRenderer.material = _chunkMaterial; newChunkGO.transform.position = new Vector3(inPosition.x, 0, inPosition.y); MeshGenerator.Output meshData = _meshGenerator.Generate(inChunkData); ApplyMesh(meshFilter, meshData); Chunk.View newChunkView = new Chunk.View(newChunkGO); return(newChunkView); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="position">左上の座標</param> /// <param name="size">縦横の大きさ</param> public SerializableRectI(Vector2DI position, Vector2DI size) : this(position.X, position.Y, size.X, size.Y) { }
/// <summary> /// <see cref="SerializableVector2DI"/>と<see cref="Vector2DI"/>間に同値性があるかどうかを返す /// </summary> /// <param name="serializable">同値性を調べる<see cref="SerializableVector2DI"/>のインスタンス</param> /// <param name="normal">同値性を調べるもう一つの<see cref="Vector2DI"/>のインスタンス</param> /// <returns>同値だったらtrue,それ以外でfalse</returns> public static bool Equals(SerializableVector2DI serializable, Vector2DI normal) => (serializable.X == normal.X) && (serializable.Y == normal.Y);
// External public Output Generate(Vector2DI inChunkPos) { return(new Output { heightMap = Noise.Generate(_chunkSize, _noiseParameters[0], inChunkPos) }); }
// External public static Chunk GetChunk(Vector2DI inChunkPos) => _worldChunks[inChunkPos];
// Constructor public Data(Vector2DI inPos) { position = inPos; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="cellPos">セル座標</param> public Wall(Vector2DI cellPos) : base(cellPos) { }
/// <summary> /// コンストラクタ /// </summary> /// <param name="cellPos">セルの座標</param> public Mine(Vector2DI cellPos) : base(cellPos) { Positions.Add(cellPos); }
// Constructor public Tile(Vector2DI inLocalPosition, Vector2DI inChunkPosition, Terrain inTerrain) { localPosition = inLocalPosition; _terrain = inTerrain; chunkPosition = inChunkPosition; }
public ProfileCardView(Model.Objects.BattleToken model, Font headerFont, Font planeFont) { void AddChild(Object2D obj) { base.AddChild(obj, ChildManagementMode.Disposal | ChildManagementMode.RegistrationToLayer, ChildTransformingMode.All); } this.Model = model; var illust = new TextureObject2D() { Texture = Engine.Graphics.CreateTexture2D(model.Property.ProfileImage), TextureFilterType = TextureFilterType.Linear, }; var overlay = new TextureObject2D() { Texture = Engine.Graphics.CreateTexture2D("Textures/ProfileOverlay.png"), DrawingPriority = 1, TextureFilterType = TextureFilterType.Linear, }; var name = new TextObject2D() { Font = headerFont, Position = new Vector2DF(overlay.Texture.Size.X / 2, 40), Text = model.Property.Name, Color = new Color(0, 0, 0), DrawingPriority = 2, }; name.SetCenterPosition(Altseed.Reactive.CenterPosition.CenterCenter); int skillIndex = 0; foreach (var skill in model.Skills) { var header = new TextObject2D() { Font = headerFont, Scale = new Vector2DF(1, 1) / 1.5f, Color = new Color(0, 0, 0), Position = new Vector2DF(25, 359 + skillIndex * 88), Text = skill.Property.Name, DrawingPriority = 2, }; var body = new TextObject2D() { Font = planeFont, Scale = new Vector2DF(1, 1) * 3 / 4, Color = new Color(0, 0, 0), Position = new Vector2DF(51, 389 + skillIndex * 88), Text = skill.Property.Description, DrawingPriority = 2, }; AddChild(header); AddChild(body); } AddChild(illust); AddChild(overlay); AddChild(name); size = overlay.Texture.Size; }