private static void RebuildAll(CancellationToken ct) { Bricks.Clear(); using (var content = new LifContentWrapper(Source, SourcePath)) { var primitiveFiles = content.GetPrimitiveFiles(); var partIDs = primitiveFiles.Select(x => x.PartID).Distinct(); CurrentProgress = new ProgressInfo(partIDs.Count(), 0); foreach (int partID in partIDs) { if (ct.IsCancellationRequested) { break; } try { var partInfo = content.GetPart(partID); var brickInfo = new BrickInfo(partInfo) { Validated = true, LastUpdate = DateTime.Now }; Bricks.Add(brickInfo); } catch { } CurrentProgress.TotalValidated++; } } }
private static void DifferencialRebuild(CancellationToken ct) { foreach (var brickInfo in Bricks) { if (ChangedParts.Contains(brickInfo.PartId)) { brickInfo.Validated = false; } } CurrentProgress = new ProgressInfo(ChangedParts.Count, 0); foreach (int partID in ChangedParts) { if (ct.IsCancellationRequested) { break; } var brickInfo = GetBrick(partID); PartWrapper partInfo = null; try { partInfo = PartWrapper.GetPartFromDirectory(SourcePath, partID, false); } catch { } if (brickInfo != null && partInfo == null) { Bricks.Remove(brickInfo); continue; } else if (partInfo != null) { if (brickInfo == null) { brickInfo = new BrickInfo(partInfo) { LastUpdate = DateTime.Now, Validated = true }; Bricks.Add(brickInfo); } else { brickInfo.UpdateInfo(partInfo); brickInfo.LastUpdate = DateTime.Now; brickInfo.Validated = true; } } CurrentProgress.TotalValidated++; } ChangedParts.Clear(); }
public Square() { for (int i = 0; i < 2; i++) { for (int o = 0; o < 2; o++) { Bricks.Add(new Brick { X = o, Y = i }); } } }
public Border(int x, int y, int width, int height) { IsActive = false; for (int i = x; i < x + width; i++) { for (int o = y; o < y + height; o++) { Bricks.Add(new Brick { X = i, Y = o }); } } }
//incializiram vsi4ki obekti tuk i vkarvam v colectiite ,sled koeto presmqta lista s coordinati public void InitGame() { this.renderer.ShowStartGameScreen(); //int Pad this.rebouncableObjects = new List <IRebouncable>(); int initPadLeftPosition = (this.renderer.ScreenWidth) / 2 - GlobalConstants.padWidth / 2; int initPadTopPosition = ((this.renderer.ScreenHeight) - GlobalConstants.padHeight * 2); var padPosition = GameObjectsFactory.GenerateNewPosition(initPadLeftPosition, initPadTopPosition); var padSize = GameObjectsFactory.GenerateNewSize(GlobalConstants.padWidth, GlobalConstants.padHeight); this.Pad = GameObjectsFactory.GeneratePad(padPosition, padSize); this.rebouncableObjects.Add(this.Pad); //int Ball this.movingObjects = new List <IMovable>(); int initBallLeftPosition = (this.renderer.ScreenWidth) / 2; int initBallTopPosition = ((this.renderer.ScreenHeight) - GlobalConstants.padHeight * (GlobalConstants.distanceFromBottomRowPad) - GlobalConstants.padHeight - GlobalConstants.ballSize); var ballSpeed = GameObjectsFactory.GenerateNewPosition(GlobalConstants.BallInitSpeedLeft, GlobalConstants.BallInitSpeedTop); var ballPosition = GameObjectsFactory.GenerateNewPosition(initBallLeftPosition, (initBallTopPosition)); var ballSize = GameObjectsFactory.GenerateNewSize(GlobalConstants.ballSize, GlobalConstants.ballSize); this.Ball = GameObjectsFactory.GenerateNewBall(ballPosition, ballSize, ballSpeed); this.movingObjects.Add(this.Ball); //init HighScore int initHighScoreLeftPosition = (this.renderer.ScreenWidth) - GlobalConstants.highScoreLeft; int initHighScorePosition = GlobalConstants.distanceFromBottomRowPad; var highScorePosition = GameObjectsFactory.GenerateNewPosition(initHighScoreLeftPosition, initHighScorePosition); var highScoreSize = GameObjectsFactory.GenerateNewSize(GlobalConstants.highScoreWidht, GlobalConstants.highScoreHeight); this.HighScore = GameObjectsFactory.GenerateNewHighScore(highScorePosition, highScoreSize); //init Bricks this.bricks = new List <IDestroyable>(); for (int j = 0; j < GlobalConstants.brickRows; j++) { for (int i = 0; i < GlobalConstants.brickCows; i++) { var brickPosition = GameObjectsFactory.GenerateNewPosition(GlobalConstants.initBrickLeftPosition + i * GlobalConstants.brickWidth * 2, (GlobalConstants.initBrickTopPosition + j * GlobalConstants.brickHright * 2)); var brickSize = GameObjectsFactory.GenerateNewSize(GlobalConstants.brickWidth, GlobalConstants.brickHright); var brick = GameObjectsFactory.GenerateNewBrick(brickPosition, brickSize); Bricks.Add(brick); } } CollisionDetector.GetBoundariesForDestroiableObjects(this.Bricks); }
public Stab() { for (int i = 0; i < 4; i++) { var b = new Brick { X = 0, Y = i }; Bricks.Add(b); if (i == 1) { RotationBrick = b; } } }
// Constructor public GameBoardViewModel() { int cols = 10; int rows = 30; for (int i = 0; i < cols; i++) { for (int j = 0; j < rows; j++) { Bricks.Add(new BrickViewModel( i * Globals.BRICK_WIDTH, j * Globals.BRICK_HEIGHT)); } } }
public LShape() { Bricks.Add(new Brick { X = 0, Y = 0 }); Bricks.Add(new Brick { X = 1, Y = 0 }); Bricks.Add(new Brick { X = 1, Y = 2 }); RotationBrick = new Brick { X = 1, Y = 1 }; Bricks.Add(RotationBrick); }
public void Add() { int x = 43; int y = 60; while (flag < 5) { if (flag == 0) { CurrentColor = Color.Aqua; } else if (flag == 1) { CurrentColor = Color.LightSteelBlue; } else if (flag == 2) { CurrentColor = Color.LightPink; } else if (flag == 3) { CurrentColor = Color.LightGoldenrodYellow; } else if (flag == 4) { CurrentColor = Color.LightGreen; } for (int i = 0; i < 10; i++) { Brick brick = new Brick(x, y); brick.Color = CurrentColor; Bricks.Add(brick); x += 77; } x = 43; y += 25; flag++; } }
public static Bricks InitBlocks(string json, Transform parentNode, bool setActive) { for (var i = parentNode.childCount - 1; i >= 0; i--) { DestroyImmediate(parentNode.transform.GetChild(i).gameObject); } var bricks = new Bricks(); var parentIDList = new List <List <int> >(); var d = JsonConvert.DeserializeObject <List <Dictionary <string, object> > >(json); foreach (var dict in d) { var brickID = (int)(long)dict["id"]; var targetPos = new Vector3(float.Parse((string)dict["transX"]), float.Parse((string)dict["transY"]), float.Parse((string)dict["transZ"])); var targetRot = new Vector3(0, float.Parse((string)dict["rotY"]), 0); var parent_ids = ((JArray)dict["parent_ids"]).Select(p => (int)p).ToList(); var prefab = Resources.Load($"Prefabs/Blocks/{(string) dict["tag"]}", typeof(GameObject)) as GameObject; prefab.transform.position = targetPos; prefab.transform.eulerAngles = targetRot; prefab.tag = (string)dict["tag"]; var brickObj = Instantiate(prefab, parentNode); var brick = brickObj.AddComponent <Brick>(); brick.InitAttribute(parentNode, brickID, targetPos, targetRot); brickObj.SetActive(setActive); bricks.Add(brick); parentIDList.Add(parent_ids); } for (var i = 0; i < bricks.Count; i++) { foreach (var parentID in parentIDList[i]) { bricks[i].AddParent(bricks[parentID]); bricks[parentID].AddChild(bricks[i]); } } return(bricks); }
public void Add() { int x = 42; int y = 60; while (flag < 5) { if (flag == 0) { CurrentColor = Color.Blue; } else if (flag == 1) { CurrentColor = Color.Aqua; } else if (flag == 2) { CurrentColor = Color.Red; } else if (flag == 3) { CurrentColor = Color.Yellow; } else if (flag == 4) { CurrentColor = Color.Green; } for (int i = 0; i <= 10; i++) { Brick brick = new Brick(x, y); brick.Color = CurrentColor; Bricks.Add(brick); x += 65; } x = 42; y += 25; flag++; } }
public void AddBrick(Brick b) { Bricks.Add(b); }
public override void Update(GameTime gameTime) { if (_random.NextDouble() < _spawnProbability && Bricks.Count < NUMBER_OF_BRICKS) { Brick brick; var rand = _random.Next(1, 20); if (rand > 16) { brick = new BrickTwoTimesDestructable( Game, new Vector2(Position.X + _random.Next(0, AREA_WIDTH / BRICK_WIDTH) * BRICK_WIDTH, 0), Color.AntiqueWhite, 1); } else if (rand > 12) { brick = new BrickInstantDestructable( Game, new Vector2(Position.X + _random.Next(0, AREA_WIDTH / BRICK_WIDTH) * BRICK_WIDTH, 0), Color.IndianRed, 1); } else { brick = new BrickNonDestructable( Game, new Vector2(Position.X + _random.Next(0, AREA_WIDTH / BRICK_WIDTH) * BRICK_WIDTH, 0), Color.Gray, 1); } Bricks.Add(brick); } for (int i = Bricks.Count - 1; i >= 0; i--) { // Raakt een blokje de onderkant van de BrickArea? // TODO oplossing maken als de blokjes bovenop de Brickarea gestapeld worden. if (!BrickArea.Contains(Bricks[i].Bounds)) { Bricks[i].Position = new Vector2(Bricks[i].Position.X, AREA_HEIGHT - BRICK_HEIGHT); Bricks[i].Moveable = false; } // Als een blokje bovenop een ander blokje valt moet deze op de plek net boven het blokje worden geplaatst. for (int collBrick = Bricks.Count - 1; collBrick >= 0; collBrick--) { if (Bricks[i].Bounds.Intersects(Bricks[collBrick].Bounds) && Bricks[i].Position.Y < Bricks[collBrick].Position.Y) { Bricks[i].Position = new Vector2(Bricks[i].Position.X, Bricks[collBrick].Position.Y - BRICK_HEIGHT - 2); // Als het blokje bovenop gestapeld wordt en dus buiten de brickArea valt moet deze helemaal weggehaald worden // Deze kan dan opnieuw gespawnd gaan worden. if (Bricks[i].Position.Y < 0) { Bricks[i].Dispose(); Bricks[i] = null; Bricks.Remove(Bricks[i]); } break; } } } base.Update(gameTime); }
private void LoadFromXml(XDocument document) { var rootElem = document.Root; if (rootElem.Name != "LXFML") { throw new InvalidDataException(); } rootElem.TryGetIntAttribute("versionMajor", out int vMaj); rootElem.TryGetIntAttribute("versionMinor", out int vMin); FileVersion = new VersionInfo(vMaj, vMin); if (rootElem.HasElement("Meta", out XElement metaElem)) { foreach (var annotationElem in metaElem.Elements("Annotation")) { var annotationAttr = annotationElem.FirstAttribute; string annotationName = annotationAttr.Name.LocalName; string value = annotationAttr.Value; //bool handled = true; switch (annotationName) { case "aliases": var aliases = value.Split(';'); for (int i = 0; i < aliases.Length; i++) { if (int.TryParse(aliases[i], out int aliasID)) { Aliases.Add(aliasID); } } break; case "designname": Name = value; break; case "maingroupid": if (MainGroup == null) { MainGroup = new MainGroup(); } MainGroup.ID = int.Parse(value); break; case "maingroupname": if (MainGroup == null) { MainGroup = new MainGroup(); } MainGroup.Name = value; break; case "platformid": if (Platform == null) { Platform = new Platform(); } Platform.ID = int.Parse(value); break; case "platformname": if (Platform == null) { Platform = new Platform(); } Platform.Name = value; break; //default: // handled = false; // break; } //if (!handled) // ExtraAnnotations.Add(annotationName, value); } } Bricks.Clear(); if (rootElem.HasElement("Bricks", out XElement bricksElem)) { foreach (var brickElem in bricksElem.Elements("Brick")) { var brick = new Brick(); brick.LoadFromXml(brickElem); Bricks.Add(brick); } } if (rootElem.HasElement("Scene", out XElement sceneElem)) { foreach (var partElem in sceneElem.Descendants("Part")) { var brick = new Brick(); brick.LoadFromXml(partElem); Bricks.Add(brick); } } if (document.Root.HasAttribute("name")) { ID = document.Root.ReadAttribute("name", 0); } if (ID == 0 && Aliases.Any()) { ID = Aliases.First(); } }
public void LoadMap() { string alertLoad; try { if (!File.Exists(fileDefault)) { alertLoad = "Map not found!"; fontAlert = SdlTtf.TTF_RenderText_Solid(font20.GetFontType(), alertLoad, white); hardware.WriteText(fontAlert, XMap, YMAP); } StreamReader MapDefault = new StreamReader(fileDefault); string line; // Load the default map in a two-dimensional array do { line = MapDefault.ReadLine(); if (line != null) { characters = line.ToCharArray(); map[row] = new char[WIDTH]; for (int i = 0; i < characters.Length; i++) { map[row][i] = characters[i]; } row++; } } while (line != null); MapDefault.Close(); } catch (PathTooLongException) {} catch (IOException e) { Console.WriteLine("I/O ERROR: " + e.Message); } catch (Exception e) { Console.WriteLine("ERROR: " + e.Message); } /* Operation without file, directly from array * for (int height = 0; height < map.Length; height++) * { * map[height] = new char[WIDTH]; * for (int width = 0; width < map[height].Length; width++) * { * if (height == 0 || height == (map.Length-1) || * width == (map[height].Length-1) || width == 0) * map[height][width] = 'B'; * else * map[height][width] = ' '; * } * }*/ for (int i = 0; i < map.Length; i++) { for (int j = 0; j < map[i].Length; j++) { if (map[i][j] == 'B' || map[i][j] == 'b') { Bricks.Add(new Brick((short)(j * Sprite.SPRITE_WIDTH), (short)(i * Sprite.SPRITE_HEIGHT))); } if (map[i][j] == 'D' || map[i][j] == 'd') { BricksDestroyable.Add(new BrickDestroyable((short)(j * Sprite.SPRITE_WIDTH), (short)(i * Sprite.SPRITE_HEIGHT))); } } } }
public override void Show() { hardware.ClearScreen(); hardware.DrawImage(imgFloor); fontName = SdlTtf.TTF_RenderText_Solid(font32.GetFontType(), len.Change(option, 21), yellow); hardware.WriteText(fontName, 150, 150); hardware.UpdateScreen(); bool escPressed = false; level = new Level(fileDefault); MapName(); LoadMap(); do { hardware.ClearScreen(); hardware.DrawImage(imgFloor); hardware.DrawImage(imgMap); fontCursor = SdlTtf.TTF_RenderText_Solid(font16.GetFontType(), len.Change(option, 9), yellow); hardware.WriteText(fontCursor, 425, 675); fontSave = SdlTtf.TTF_RenderText_Solid(font16.GetFontType(), len.Change(option, 8), yellow); hardware.WriteText(fontSave, 63, 670); hardware.DrawImage(imgCursor); foreach (Brick brick in Bricks) { hardware.DrawSprite(Sprite.spritesheet, (short)(brick.X - level.XMap), (short)(brick.Y - level.YMap), brick.SpriteX, brick.SpriteY, Sprite.SPRITE_WIDTH, Sprite.SPRITE_HEIGHT); } foreach (BrickDestroyable bdes in BricksDestroyable) { hardware.DrawSprite(Sprite.spritesheet, (short)(bdes.X - level.XMap), (short)(bdes.Y - level.YMap), bdes.SpriteX, bdes.SpriteY, Sprite.SPRITE_WIDTH, Sprite.SPRITE_HEIGHT); } int keyPressed = hardware.KeyPressed(); switch (keyPressed) { case Hardware.KEY_UP: if (cursorY > 1) { cursorY--; if (cursorYGrafic > 40) { cursorYGrafic -= 40; } imgCursor.MoveTo(cursorXGrafic, cursorYGrafic); } break; case Hardware.KEY_DOWN: if (cursorY < 15) { cursorY++; if (cursorYGrafic < 560) { cursorYGrafic += 40; } imgCursor.MoveTo(cursorXGrafic, cursorYGrafic); } break; case Hardware.KEY_LEFT: if (cursorX > 1) { cursorX--; if (cursorXGrafic > 40) { cursorXGrafic -= 40; } imgCursor.MoveTo(cursorXGrafic, cursorYGrafic); } break; case Hardware.KEY_RIGHT: if (cursorX < 21) { cursorX++; if (cursorXGrafic < 760) { cursorXGrafic += 40; } imgCursor.MoveTo(cursorXGrafic, cursorYGrafic); } break; case Hardware.KEY_B: if (cursorX >= 1 && cursorX <= 20 && cursorY >= 1 && cursorY <= 16) { map[cursorY][cursorX] = 'B'; Bricks.Add(new Brick(cursorXGrafic, cursorYGrafic)); } break; case Hardware.KEY_D: if (cursorX >= 1 && cursorX <= 20 && cursorY >= 1 && cursorY <= 16) { map[cursorY][cursorX] = 'D'; BricksDestroyable.Add(new BrickDestroyable( cursorXGrafic, cursorYGrafic)); } break; case Hardware.KEY_SPACE: if (cursorX >= 1 && cursorX <= 20 && cursorY >= 1 && cursorY <= 16) { map[cursorY][cursorX] = ' '; } break; case Hardware.KEY_ENTER: CreateMap(); break; } //Pause Game Thread.Sleep(16); if (keyPressed == Hardware.KEY_ESC) { escPressed = true; } hardware.DrawImage(imgCursor); hardware.UpdateScreen(); } while (!escPressed); }