static void Main(string[] args) { Console.WriteLine("Hello World!"); var cnf = new Configuration(); //設定ファイルでtrueとかをfalseをいじれると良い? cnf.IsFullscreen = false; Engine.Initialize("test", 1280, 720, cnf); var m = new MousePointer(new Vector2F(300, 300), resourcePath); // var b = new Block(new Vector2F(300, 300), resourcePath, 0 , 0); var f = new Frame(new Vector2F(200, 200), resourcePath); var mino = new Mino(new Vector2F(500, 500), resourcePath); Engine.AddNode(mino); Engine.AddNode(m); // Engine.AddNode(b); while (Engine.DoEvents()) { Engine.Update(); if (Engine.Keyboard.GetKeyState(Key.Escape) == ButtonState.Push) { break; } } Engine.Terminate(); }
protected override void OnCollide(CollidableObject obj) { base.OnCollide(obj); if (obj is Mino) { var mino = (Mino)obj; if (Engine.Mouse.GetMouseButtonState(MouseButton.ButtonLeft) == ButtonState.Push) { } if (Engine.Mouse.GetMouseButtonState(MouseButton.ButtonLeft) == ButtonState.Hold) { //参照するMinoを登録する Mino = mino; Vector2F moveVector = (Position - prePosition); Console.WriteLine(moveVector); if (moveVector != new Vector2F(0, 0)) { prePosition = Position; } //Console.WriteLine(moveVector); foreach (var m in Mino.mino) { m.Position += moveVector; } mino.Position += moveVector; var mainBlock = mino.mino[Mino.mainBlock]; Position = mainBlock.Position + new Vector2F(mainBlock.Texture.Size.X / 2, mainBlock.Texture.Size.Y / 2); prePosition = Position; doHaveMino = true; } if (Engine.Mouse.GetMouseButtonState(MouseButton.ButtonLeft) == ButtonState.Release) { doHaveMino = false; } } /* if(obj is Block) * { * if(Engine.Mouse.GetMouseButtonState(MouseButton.ButtonLeft) == ButtonState.Hold) * { * Console.WriteLine("a"); * obj.Position = Engine.Mouse.Position - obj.Texture.Size / 2; * doHaveMino = true; * Block = (Block)obj; * }else * { * doHaveMino = false; * } * }*/ if (obj is Cell) { /* if(doHaveMino) * { * if(Engine.Mouse.GetMouseButtonState(MouseButton.ButtonLeft) == ButtonState.Release) * { * Cell cell = (Cell)obj; * Block.Scale = new Vector2F(2, 2); * Block.collider.Size = Block.Texture.Size * 2; * Block.Position = obj.Position; * Block = null; * doHaveMino = false; * cell.isEmpty = false; * } * }*/ /* if(doHaveMino) * { * if(Engine.Mouse.GetMouseButtonState(MouseButton.ButtonLeft) == ButtonState.Release) * { * //objをCellであることを明記する * Cell cell = (Cell)obj; * Mino.Scale = new Vector2F(2, 2); * Mino.collider.Size *= new Vector2F(2, 2); * Mino.Position = cell.Position; * Mino = null; * doHaveMino = false; * } * else * { * } * }*/ } }