Ignore:
Timestamp:
2015-06-30 20:07:55 (5 years ago)
Author:
sieerinn
Message:

Kamoissa näkyy käyttökerrat. Kamasysteemin toimivuutta paranneltu. Kojootin kuvat.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2015/27/ohjaajat/TheLegendOfGabriel/TheLegendOfGabriel/TheLegendOfGabriel/TheLegendOfGabriel.cs

    r6624 r6626  
    2323} 
    2424 
     25class CycleSlot : Label 
     26{ 
     27    public Label UsageLabel { get; set; } 
     28 
     29    public CycleSlot(double left, double top) 
     30    { 
     31        this.Left = left; 
     32        this.Top = top; 
     33        this.Size = new Vector(60, 40); 
     34 
     35        UsageLabel = new Label("10"); 
     36        UsageLabel.IsVisible = false; 
     37        UsageLabel.TextColor = Color.White; 
     38        UsageLabel.X = this.X + 10; 
     39        UsageLabel.Top = this.Bottom; 
     40        UsageLabel.Font = Font.DefaultSmallBold; 
     41    } 
     42 
     43    public void UpdateImage(Item item) 
     44    { 
     45        if (item != null) 
     46        { 
     47            this.Image = item.InventoryImage; 
     48            UsageLabel.IsVisible = false; 
     49            if (item.Usages.MaxValue > 0) 
     50            { 
     51                UsageLabel.IsVisible = true; 
     52                UsageLabel.BindTo(item.Usages); 
     53            } 
     54        } 
     55    } 
     56} 
     57 
    2558public partial class TheLegendOfGabriel : PhysicsGame 
    2659{ 
     
    4275    StoryItem[] storyItem = new StoryItem[3]; 
    4376 
    44     private Label currentItem; 
    45     private Label nextItem; 
    46     private Label prevItem; 
    47     private Label swordFrame; 
     77    private CycleSlot currentItem; // Laatikossa näkyvä nykyinen kama. 
     78    private CycleSlot nextItem; // Seuraavan kaman kuva. 
     79    private CycleSlot prevItem; // Edellisen kaman kuva. 
     80    private Label swordItem; // Laatikossa näkyvä miekka. 
    4881 
    4982    #region Resources 
     
    87120    private Animation playerShootDown; 
    88121 
     122    [AssetName("coyoteup")] 
     123    private Animation coyoteUp; 
     124    [AssetName("coyoteright")] 
     125    private Animation coyoteRight; 
     126    [AssetName("coyoteright", mirror: true)] 
     127    private Animation coyoteLeft; 
     128    [AssetName("coyotedown")] 
     129    private Animation coyoteDown; 
     130 
    89131    #endregion 
    90132 
     
    105147        const int spacing = 20; 
    106148 
    107         prevItem = new Label(); 
    108         prevItem.Size = new Vector(60, 40); 
    109         prevItem.X = Screen.Left + 100; 
    110         prevItem.Y = Screen.Top - 50; 
     149        prevItem = new CycleSlot(Screen.Left + 50, Screen.Top - 30); 
    111150        Add(prevItem); 
    112  
    113         currentItem = new Label(); 
    114         currentItem.Size = prevItem.Size; 
    115         currentItem.Left = prevItem.Right + spacing; 
    116         currentItem.Y = prevItem.Y; 
     151        Add(prevItem.UsageLabel); 
     152 
     153        currentItem = new CycleSlot(prevItem.Right + spacing, prevItem.Top); 
    117154        Add(currentItem); 
    118  
    119         nextItem = new Label(); 
    120         nextItem.Size = prevItem.Size; 
    121         nextItem.Left = currentItem.Right + spacing; 
    122         nextItem.Y = prevItem.Y; 
     155        Add(currentItem.UsageLabel); 
     156 
     157        nextItem = new CycleSlot(currentItem.Right + spacing, prevItem.Top); 
    123158        Add(nextItem); 
    124  
     159        Add(nextItem.UsageLabel); 
     160 
     161        // Ruutu jonka sisällä käytössä oleva kama on. 
    125162        var frame = new Label(); 
    126163        frame.Size = new Vector(60, 60); 
     
    130167        Add(frame); 
    131168 
    132         swordFrame = new Label(); 
    133         swordFrame.Size = prevItem.Size; 
    134         swordFrame.Left = nextItem.Right + spacing * 2; 
    135         swordFrame.Top = currentItem.Top; 
     169        // Miekan kuva. 
     170        swordItem = new Label(); 
     171        swordItem.Size = prevItem.Size; 
     172        swordItem.Left = nextItem.Right + spacing * 2; 
     173        swordItem.Top = currentItem.Top; 
     174        Add(swordItem); 
     175 
     176        // Miekan kuvan ympärillä oleva ruutu. 
     177        var swordFrame = new Label(); 
     178        swordFrame.Size = new Vector(60, 60); 
     179        swordFrame.Image = ActiveItemFrameImageZ; 
     180        swordFrame.X = swordItem.X; 
     181        swordFrame.Top = swordItem.Top; 
    136182        Add(swordFrame); 
    137  
    138         var frame2 = new Label(); 
    139         frame2.Size = new Vector(60, 60); 
    140         frame2.Image = ActiveItemFrameImageZ; 
    141         frame2.X = swordFrame.X; 
    142         frame2.Top = swordFrame.Top; 
    143         Add(frame2); 
    144183    } 
    145184 
     
    176215            field.SetValue(this, assetAttr.Mirror ? MirrorAnimation(anim) : anim); 
    177216        } 
     217    } 
     218 
     219    Dictionary<Direction, Animation> DirectionalAnimations(Animation left, Animation right, Animation up, Animation down) 
     220    { 
     221        var dict = new Dictionary<Direction, Animation>(); 
     222        dict[Direction.Left] = left; 
     223        dict[Direction.Right] = right; 
     224        dict[Direction.Up] = up; 
     225        dict[Direction.Down] = down; 
     226        return dict; 
    178227    } 
    179228 
     
    272321        if (player.ActiveItem != null) 
    273322        { 
    274             player.ActiveItem.UseKeyReleased(); 
     323            player.ActiveItem.CancelUse(); 
     324        } 
     325        if (player.Sword != null) 
     326        { 
     327            player.Sword.CancelUse(); 
    275328        } 
    276329 
     
    281334    void UpdateItemCycleImages() 
    282335    { 
     336        prevItem.UpdateImage(player.PrevItem); 
     337        currentItem.UpdateImage(player.ActiveItem); 
     338        nextItem.UpdateImage(player.NextItem); 
     339        /* 
    283340        if (player.PrevItem != null) prevItem.Image = player.PrevItem.InventoryImage; 
    284341        if (player.NextItem != null) nextItem.Image = player.NextItem.InventoryImage; 
    285342        if (player.ActiveItem != null) currentItem.Image = player.ActiveItem.InventoryImage; 
     343         */ 
    286344 
    287345        if (player.Sword != null) 
    288346        { 
    289             swordFrame.Image = BigSwordImage; 
     347            swordItem.Image = BigSwordImage; 
    290348        } 
    291349    } 
     
    426484                } 
    427485                oldObjects.Clear(); 
     486 
     487                BuildRightBar(); 
     488                BuildInventoryCycle(); 
     489                UpdateItemCycleImages(); 
    428490            } 
    429491        } 
Note: See TracChangeset for help on using the changeset viewer.