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

Revision 5359, 2.5 KB checked in by mijoilmo, 6 years ago (diff)
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 (this.X > parent.Level.Right)
75        {
76            this.X = parent.Level.Left;
77        }
78        else if (this.X < parent.Level.Left)
79        {
80            this.X = parent.Level.Right;
81        }
82        if (parent.CurrentLevel.IsPlanet && this.Y > parent.Level.Top)
83        {
84            //player pystyy lähteä pois planeetalta kun menee tarpeeksi ylös
85            //TODO: vaihda leveli spaceksi
86        }
87    }
88}
Note: See TracBrowser for help on using the repository browser.