source: 2016/30/AleksiN/name/name/name/name.cs @ 8193

Revision 8193, 3.0 KB checked in by almajono, 4 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8using System.Linq;
9public class name : PhysicsGame
10{
11
12    Image motorbike = LoadImage("motorbike");
13    Image tire = LoadImage("tire");
14    PhysicsObject bikePhysicsObject;
15    PhysicsObject leftTire;
16    PhysicsObject rightTire;
17    PhysicsStructure bike;
18    public override void Begin()
19
20    {
21
22        Level.Width = Screen.Width * 25;
23
24        SmoothTextures = true;
25        IsFullScreen = false;
26       
27        AddPlayer();
28        Points();
29        Keys();
30
31        Camera.Follow(bikePhysicsObject);
32
33        Surface level = Surface.CreateBottom(Level, 400, 700, 200, 250);
34        Add(level);
35        Gravity = new Vector(0.0, -800.0);
36
37        Wind = new Vector(-25, 0);
38        Smoke smoke = new Smoke();
39        Timer smokeTimer = new Timer();
40        smokeTimer.Interval = 0.1;
41        smokeTimer.Timeout += delegate { smoke.Position = bike.Objects[1].Position; };
42        smokeTimer.Start();
43        Add(smoke);
44
45    }
46
47    void AddPlayer()
48    {
49         leftTire = new PhysicsObject(57.5, 57.5, Shape.Circle);
50         rightTire = new PhysicsObject(57.5, 57.5, Shape.Circle);
51        bikePhysicsObject = new PhysicsObject(250.0, 200.0);
52        leftTire.X = -70.0;
53        leftTire.Y = -260.0;
54        rightTire.X = 65.0;
55        rightTire.Y = -260.0;
56        bikePhysicsObject.X = 0;
57        bikePhysicsObject.Y = -200;
58        leftTire.Image = tire;
59        rightTire.Image = tire;
60        bikePhysicsObject.Image = motorbike;
61        this.bike = new PhysicsStructure(leftTire, rightTire, bikePhysicsObject);
62        bikePhysicsObject.IgnoresCollisionResponse = true;
63        Add(this.bike);
64        Add(bikePhysicsObject);
65        bike.KineticFriction = 1.0;
66        bike.Restitution = 1;
67        bike.Y += 100;
68    }
69    void Keys()
70    {
71        Keyboard.Listen(Key.Down, ButtonState.Down, Movement, null, new Vector(-3500, 0));
72        Keyboard.Listen(Key.Up, ButtonState.Down, Movement, null, new Vector(3500, 0));
73        Keyboard.Listen(Key.Left, ButtonState.Down, ChangeAngle, null, 1.0);
74        Keyboard.Listen(Key.Right, ButtonState.Down, ChangeAngle, null, -1.0);
75        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
76    }
77    void Movement(Vector movement)
78    {
79        if(GetObjectAt(bikePhysicsObject.Position - new Vector(0, bike.Height / 2) * 0.9, 0.1) != null)
80        {
81            bike.Push(movement);
82        }
83    }
84    void ChangeAngle(double ammount)
85    {
86        bike.AngularVelocity = ammount;
87    }
88    IntMeter pointCounter;
89    void Points()
90    {
91        pointCounter = new IntMeter(0);
92        Label pointLabel = new Label();
93        pointLabel.X = Screen.Left + 100;
94        pointLabel.Y = Screen.Top - 100;
95        pointLabel.TextColor = Color.Black;
96        pointLabel.Color = Color.White;
97        pointLabel.BindTo(pointCounter);
98        Add(pointLabel);
99    }
100
101}
Note: See TracBrowser for help on using the repository browser.