source: 2014/27/AleksanteriV/Protokolla236TrueSurvivor/Protokolla236TrueSurvivor/Protokolla236TrueSurvivor/Player.cs @ 5395

Revision 5395, 2.8 KB checked in by mijoilmo, 5 years ago (diff)

Optimoitu levelin kopioimista. Lisätty basic !space leveli

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Player : PhysicsObject
10{
11    GameObject thrusterEffect;
12    Proto236b parent;
13    private List<Weapon> weapons = new List<Weapon>();
14
15    public void rotate(double rotSpeed)
16    {
17        this.AngularVelocity = rotSpeed;
18    }
19    public void thrusterStart(double speed)
20    {
21        this.thrusterEffect.IsVisible = true;
22        this.Push(Vector.FromLengthAndAngle(speed * 800, this.Angle + Angle.RightAngle));
23    }
24    public void thrusterEnd()
25    {
26        this.thrusterEffect.IsVisible = false;
27        //if this.ids, enable ids
28    }
29    public Player(Proto236b parent)
30        : base(40, 40)
31    {
32        this.parent = parent;
33        this.Image = parent.Images["player"];
34        this.Shape = Shape.FromImage(parent.Images["player"]);
35        bool IDS = false; //inertial dampening system, katsotaan pistetäänkö ostettavaksi peliin
36        if (IDS == true)
37        {
38            this.LinearDamping = 0.97;
39        }
40        else
41        {
42            this.LinearDamping = 1;
43        }
44        this.AngularDamping = 0.7;
45        this.Restitution = 0.2;
46
47        this.thrusterEffect = new GameObject(40, 40);
48        thrusterEffect.Animation = new Animation(parent.ImageLists["player_thruster"]);
49        thrusterEffect.Animation.FPS = 18;
50        thrusterEffect.Animation.Start();
51        thrusterEffect.IsVisible = false;
52        thrusterEffect.Y -= 19;
53        Add(thrusterEffect);
54    }
55    public void shoot()
56    {
57        foreach (Weapon weapon in weapons)
58        {
59            weapon.Shoot();
60        }
61    }
62    public void attachWeapon()
63    {
64        Weapon weapon = new AssaultRifle(1, 1);
65        weapon.Angle += Angle.RightAngle;
66        Add(weapon);
67        weapons.Add(weapon);
68    }
69    public override void Update(Time time)
70    {
71        base.Update(time);
72        this.parent.MessageDisplay.Clear();
73        this.parent.MessageDisplay.Add(this.AbsolutePosition.ToString());
74        if (parent.CurrentLevel.IsPlanet)
75        {
76            if (this.X > parent.Level.Right)
77            {
78                this.X = parent.Level.Left;
79                this.parent.Camera.X = parent.Level.Left; // kamera päivitetään ettei pelaaja välky
80            }
81            else if (this.X < parent.Level.Left)
82            {
83                this.X = parent.Level.Right;
84                this.parent.Camera.X = parent.Level.Right; // ditto
85            }
86            if (this.Y > parent.Level.Top - parent.GameScreen.Height / 2)
87            {
88                //player pystyy lähteä pois planeetalta kun menee tarpeeksi ylös
89                parent.LoadLevel("space");
90            }
91        }
92    }
93}
Note: See TracBrowser for help on using the repository browser.