private void doorUpdate() { bool clickedThisFrame = false; foreach (Door item in doors) { if (Mousecontrol.clickedOnItem(item.getSprite().Position, item.getSprite().FrameSize, Mousecontrol.clicked()) && !Registry.inventoryInUse) { if (!item.isLocked) { toChangeRoom = true; nextDoor = item; clickedThisFrame = true; } } else if (Mousecontrol.clicked() && !clickedThisFrame) { toChangeRoom = false; //nextDoor = new Door(); } } if (toChangeRoom) { if (Mousecontrol.inProximityToItem(nextDoor.position, new Point(nextDoor.getSprite().FrameSize.X + 2, nextDoor.getSprite().FrameSize.Y + 2))) { toChangeRoom = false; int nextRoomId = int.Parse(nextDoor.nextRoomID); Vector2 door2Position = nextDoor.door2Position; nextDoor = new Door(); changeRoom(nextRoomId, door2Position); } } }
public bool giveDoorItem(Item itemClickedOn) { bool temp = false; foreach (Door door in doors) { if (door.isLocked && Mousecontrol.clickedOnItem(door.getSprite().Position, door.getSprite().FrameSize, true) && (itemClickedOn.name == door.getKey())) { door.Unlock(); temp = true; } } return(temp); }
public bool giveNPCItem(Item itemClickedOn) { bool temp = false; foreach (NPC npc in npcs) { if (Mousecontrol.clickedOnItem(npc.getPosition, npc.getFrameSize, true) && (itemClickedOn.name == npc.wantedItem)) { npc.givenItem(); temp = true; } } return(temp); }
private void mousecontrolUpdate() { //Om man klickar med musen //Om man klickar på ett föremål i rummet bool clickedThisFrame = false; foreach (Item item in items) { if (Mousecontrol.clickedOnItem(item.getSprite().Position, item.getSprite().FrameSize, Mousecontrol.clicked())) { if (item.isPickable) { isItemClicked = true; itemClicked = item; clickedThisFrame = true; } } else if (Mousecontrol.clicked() && !clickedThisFrame) { isItemClicked = false; } } }
public void Update(GameTime gameTime, Rectangle clientBounds) { clickedOnNew = false; clickedOnOpen = false; if (Mousecontrol.clickedOnItem(openSprite.Position, openSprite.FrameSize, Mousecontrol.clicked())) { clickedOnOpen = true; } if (Mousecontrol.clickedOnItem(newSprite.Position, newSprite.FrameSize, Mousecontrol.clicked())) { clickedOnNew = true; } if (clickedOnNew) { newSprite.Update(gameTime, clientBounds); } if (clickedOnOpen) { openSprite.Update(gameTime, clientBounds); } if (Mousecontrol.mouseOverItem(openSprite.Position, openSprite.FrameSize)) { openNowSprite = openSprite2; } else if (Mousecontrol.mouseOverItem(newSprite.Position, newSprite.FrameSize)) { newNowSprite = newSprite2; } else { newNowSprite = newSprite; openNowSprite = openSprite; } }
public void Update() { if (isInteractingWithItem && !inventoryInUse) { if (Mousecontrol.clicked()) { isInteractingWithItem = false; } } if (isInteractingWithItem) { itemClickedOn.setPosition(new Vector2(Mouse.GetState().X / 3 - itemClickedOn.getSprite().Texture.Width / 2, Mouse.GetState().Y / 3 - itemClickedOn.getSprite().Texture.Height / 2)); } //Uppdatering av muskontroll if (inventoryInUse) { if (isInteractingWithItem) { //Om man klickar med vänstra musknappen... if (Mousecontrol.clicked()) { bool clickedOnItem = false; Item tempItem = new Item(); foreach (Item item in inventory) { //På ett föremål... if (Mousecontrol.clickedOnItem(item.getSprite().Position, item.getSprite().FrameSize, true)) { clickedOnItem = true; tempItem = item; } } //...och om föremålet går att kombinera och man klickar på ett föremål som går att kombinera if (itemClickedOn.isCombinable && clickedOnItem && itemClickedOn.isCombinable) { //...går det att kombinera föremålen så kombineras de och annars läggs det föremålet som man klickat på tillbaks i inventoryn if (!combineItem(itemClickedOn, tempItem)) { addItem(itemClickedOn); } isInteractingWithItem = false; } else { addItem(itemClickedOn); isInteractingWithItem = false; } } } else { //Om man klickar ner musen... if (Mousecontrol.clicked()) { bool clickedOnItem = false; //... och om man klickar på ett föremål i sin inventory... foreach (Item item in inventory) { if (Mousecontrol.clickedOnItem(item.getPosition(), item.getSprite().FrameSize, true)) { itemClickedOn = item; clickedOnItem = true; } } if (clickedOnItem) { //Blir föremålet ett föremål som följer musen och den tas bort från själva inventoryn isInteractingWithItem = true; removeItem(itemClickedOn); } } } } Registry.itemsInInventory = inventory; Registry.inventoryInUse = inventoryInUse; }
public void Update(GameTime gameTime, Rectangle clientBounds) { // När man klickar på NPC:n så börjar dialogen if (Mousecontrol.clickedOnItem(position, new Point(stillTexture.Width / 3, stillTexture.Height), Mousecontrol.clicked()) && !isTalking && !Registry.inventoryInUse) { Talk(); } // -- Händelser baserade på dialoger -- // if (activeDialog.getActiveLine() == "give") // NPC:n ger bort sin item { giveItem = true; dialogNumber++; } if (activeDialog.getActiveLine() == "0" || Keyboard.GetState().IsKeyDown(Keys.S)) // Avslutar dialogen { isTalking = false; } activeDialog.checkLines(); // Spriteändringar beroende på om NPC:N pratar if (activeDialog.getSpeaker() == "NPC") { activeSprite = talkSprite; } else { activeSprite = stillSprite; } if (!isTalking) { activeSprite = stillSprite; } if (position.Y != 0) { layerPosition = (1 - (position.Y + activeSprite.Texture.Height) / 180) / 3; //3-D EFFEKTER!!!! NPC:n hamnar bakom och framför saker beroende på vart den står } else { layerPosition = 0.2f; } activeSprite.Update(gameTime, clientBounds); // Följ efterspelaren if (lookatplayer) { if (position.X < Registry.playerPosition.X) { flip = false; } else { flip = true; } } }