source: 2013/30/MiskaK/MW2(My Warfare 2)/Paranneltu Jypeli/GameObjects/GameObject/Appearance.cs @ 4507

Revision 4507, 4.3 KB checked in by anlakane, 6 years ago (diff)

Talletus.

Line 
1#region MIT License
2/*
3 * Copyright (c) 2009 University of Jyväskylä, Department of Mathematical
4 * Information Technology.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 * THE SOFTWARE.
23 */
24#endregion
25
26/*
27 * Authors: Tero Jäntti, Tomi Karppinen, Janne Nikkanen.
28 */
29
30using System;
31using System.Collections.Generic;
32using System.Linq;
33using System.Text;
34
35namespace Jypeli
36{
37    public partial class GameObject
38    {
39#if !XBOX && !WINDOWS_PHONE
40        [NonSerialized]
41#endif
42        private Color _color = Color.White;
43        private bool _textureFillsShape = false;
44        private Vector _textureWrapSize = new Vector( 1, 1 );
45
46        /// <summary>
47        /// Piirretäänkö oliota ruudulle.
48        /// </summary>
49        [Save]
50        public bool IsVisible { get; set; }
51
52        /// <summary>
53        /// Animaatio. Voi olla <c>null</c>, jolloin piirretään vain väri.
54        /// </summary>
55        public override Animation Animation { get; set; }
56
57        /// <summary>
58        /// Määrittää kuinka moneen kertaan kuva piirretään. Esimerkiksi (3.0, 2.0) piirtää
59        /// kuvan 3 kertaa vaakasuunnassa ja 2 kertaa pystysuunnassa.
60        /// </summary>
61        [Save]
62        public Vector TextureWrapSize
63        {
64            get { return _textureWrapSize; }
65            set { _textureWrapSize = value; }
66        }
67
68        /// <summary>
69        /// Väri, jonka värisenä olio piirretään, jos tekstuuria ei ole määritelty.
70        /// </summary>
71        public virtual Color Color
72        {
73            get { return _color; }
74            set { _color = value; }
75        }
76
77        /// <summary>
78        /// Jos <c>true</c>, kuva piirretään niin, ettei se mene olion muodon
79        /// ääriviivojen yli. Toisin sanoen kuva piirretään tarkasti vain
80        /// muodon määrittämälle alueelle.
81        /// </summary>
82        /// <remarks>
83        /// Tämän asettaminen tekee olion piirtämisestä hitaamman. Jos
84        /// muoto on yksinkertainen, harkitse voisiko kuvan piirtää niin, että
85        /// läpinäkyvyyttä käyttämällä saadaan kuvasta halutun muotoinen.
86        /// </remarks>
87        public bool TextureFillsShape
88        {
89            get { return _textureFillsShape; }
90            set { _textureFillsShape = value; }
91        }
92
93        private void InitAppearance()
94        {
95            this.IsVisible = true;
96        }
97
98        private void InitAppearance( Animation animation )
99        {
100            this.Animation = animation;
101            InitAppearance();
102        }
103
104        /// <summary>
105        /// Lataa kuvan tiedostosta ja asettaa sen oliolle.
106        /// </summary>
107        /// <param name="file"></param>
108        public void SetImage( StorageFile file )
109        {
110            this.Image = Image.FromStream( file.Stream );
111        }
112
113        /// <summary>
114        /// Kääntää olion kuvan vaakasuunnassa.
115        /// </summary>
116        public void MirrorImage()
117        {
118            TextureWrapSize = new Vector( -TextureWrapSize.X, TextureWrapSize.Y );
119        }
120
121        /// <summary>
122        /// Kääntää olion kuvan pystysuunnassa.
123        /// </summary>
124        public void FlipImage()
125        {
126            TextureWrapSize = new Vector( TextureWrapSize.X, -TextureWrapSize.Y );
127        }
128    }
129}
Note: See TracBrowser for help on using the repository browser.