Ignore:
Timestamp:
2017-06-08 23:06:10 (4 years ago)
Author:
nupeohje
Message:

basicly wrote 300 rows more code and finished teh game

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2017/23/JaakkoS/Makkarajono/Makkarajono/Makkarajono/Makkarajono.cs

    r8442 r8466  
    1717    } 
    1818 
     19    Label timeScreenP; 
     20    Timer timeTimer; 
     21    IntMeter p1Points; 
     22    IntMeter p2Points; 
     23    IntMeter timeCounterSeconds; 
     24    IntMeter timeCounterMinutes; 
    1925    bool gameIsStarted = false; 
    2026    bool blockLeft = false; 
     
    2632    PlatformCharacter2 bot1; 
    2733    PhysicsObject block; 
     34    GameObject icon1; 
     35    GameObject icon2; 
    2836    Image playerImage = LoadImage("Huggo"); 
    2937    Image player2Image = LoadImage("Huggouggo"); 
     38    Image p1Icon = LoadImage("P1icon"); 
     39    Image p2Icon = LoadImage("P2icon"); 
    3040    Image blockImage = LoadImage("Palikka"); 
    3141    Image platImage = LoadImage("Frame"); 
     
    3444    private Animation p2Punch; 
    3545    private Animation P2WalkAnim; 
     46    string p1name; 
     47    string p2name; 
    3648    SoundEffect punchNoice1  = LoadSoundEffect("hitSound1"); 
    3749    Image[] Panim1Kuvat = LoadImages("P1animP/P1animP", 1, 7, false); 
     
    4052    Image[] Ramin2Kuvat = LoadImages("P2animR/HuggouggoWanim", 1, 9, false); 
    4153    MultiSelectWindow StartMenu; 
     54    InputWindow nameAsk; 
     55 
     56    bool isAttacking = false; 
     57    bool isAttacking2 = false; 
     58 
     59    List<Vector> Spawnpoints = new List<Vector>(); 
    4260 
    4361    protected override void OnExiting(object sender, EventArgs args) 
     
    5371 
    5472        StartMenu = new MultiSelectWindow("Welcome!", "Start", "Exit"); 
    55         StartMenu.AddItemHandler(0, StartGame); 
     73        StartMenu.AddItemHandler(0, AskNames, false); 
    5674        StartMenu.AddItemHandler(1, Exit); 
    5775        Add(StartMenu); 
     
    6280 
    6381        ClearAll(); 
     82        Multiplier1 = 0; 
     83        Multiplier2 = 0; 
    6484        gameIsStarted = true; 
    6585        SmoothTextures = false; 
     
    7191        P2WalkAnim = new Animation(Ramin2Kuvat); 
    7292        Game = this; 
    73  
    7493        if (Platform.PlatformThread == null) 
    7594            Platform.InitializePlatformThread(); 
     
    8099    } 
    81100 
     101    void AskNames(bool isQuoestion2) 
     102    { 
     103        ClearAll(); 
     104        if (!isQuoestion2) 
     105        { 
     106            nameAsk = new InputWindow("Gimme ur name player 1"); 
     107            nameAsk.MaxCharacters = 20; 
     108            nameAsk.TextEntered += delegate { ProcessNameInput(nameAsk, false); }; 
     109            Add(nameAsk); 
     110        } 
     111        else 
     112        { 
     113            nameAsk = new InputWindow("Gimme ur name player 2"); 
     114            nameAsk.TextEntered += delegate{ ProcessNameInput(nameAsk, true); }; 
     115            nameAsk.MaxCharacters = 20; 
     116            Add(nameAsk); 
     117            nameAsk.Closed += delegate { StartGame(); }; 
     118        } 
     119    } 
     120 
     121    void ProcessNameInput(InputWindow _window, bool isPlayer2) 
     122    { 
     123        if (!isPlayer2) 
     124        { 
     125            p1name = _window.InputBox.Text; 
     126            AskNames(true); 
     127        } 
     128        else 
     129            p2name = _window.InputBox.Text; 
     130    } 
     131 
    82132    private double Clamp(double value, double min, double max) 
    83133    { 
     
    95145    } 
    96146 
     147    private double TimeLeft = 3589; 
     148 
    97149    protected override void Update(Time time) 
    98150    { 
     
    101153        if (gameIsStarted) 
    102154        { 
     155             
    103156            Camera.Position = Vector.Average(player.Position, player2.Position); 
    104157 
     
    118171    { 
    119172        ColorTileMap _level = ColorTileMap.FromLevelAsset(_levelImage); 
     173        _level.SetTileMethod("#FFFFFFFF", (Vector _pos, double x, double y) => 
     174        { 
     175            Spawnpoints.Add(_pos); 
     176        }); 
     177        _level.Execute(50, 50); 
     178 
     179        _level = ColorTileMap.FromLevelAsset(_levelImage); 
    120180        _level.SetTileMethod("#FFFFFF00", AddPlayer, true); 
    121         _level.SetTileMethod("0000FF", AddPlayer, false); 
     181        _level.SetTileMethod("#FF0000FF", AddPlayer, false); 
    122182        _level.Execute(50, 50); 
    123183 
     
    125185        _level.SetTileMethod("FF0000", AddPlatform);          
    126186        _level.SetTileMethod("000000", AddBlock); 
    127         _level.Optimize(Color.FromHexCode("000000")); 
     187         
    128188        _level.Execute(50, 50); 
    129189         
     
    146206        AddCollisionHandler(rightBorder, HitBorder); 
    147207        AddCollisionHandler(topBorder, HitBorder); 
     208 
     209        AddIcon(p1Icon, Screen.Left + 30, Screen.Top - 30, 50, 50, p1name, Screen.Left + 80, Screen.Top - 30, false); 
     210        AddIcon(p2Icon, Screen.Right - 30, Screen.Top - 30, 50, 50, p2name, Screen.Right - 80, Screen.Top - 30, true); 
     211        AddTimeCounter(); 
    148212    } 
    149213 
     
    160224            player2.LinearDamping = 1; 
    161225            player2.AngularDamping = 1; 
    162             player2.Position = _pos; 
     226            player2.Position = Spawnpoints[RandomGen.NextInt(0, Spawnpoints.Count - 1)]; 
    163227            player2.CanRotate = false; 
    164228            player2.CollisionIgnoreGroup = 2; 
     
    185249                } 
    186250            }; 
    187             ajastin.Start(); 
     251                ajastin.Start(); 
    188252        } 
    189253        else 
     
    197261            player.LinearDamping = 1; 
    198262            player.AngularDamping = 1; 
    199             player.Position = _pos; 
     263            player.Position = Spawnpoints[RandomGen.NextInt(0, Spawnpoints.Count - 1)]; 
    200264            player.CanRotate = false; 
    201265            player.CollisionIgnoreGroup = 1; 
     
    224288            ajastin.Start(); 
    225289        } 
    226  
    227290        
    228291    } 
     
    238301    void HitBorder(PhysicsObject collider, PhysicsObject target) 
    239302    { 
    240         MessageDisplay.Add("collider: " + collider.Tag.ToString()); 
    241         MessageDisplay.Add("target: " + target.Tag.ToString()); 
    242         target.Destroy(); 
    243         Begin(); 
     303        target.Position = Spawnpoints[RandomGen.NextInt(0, Spawnpoints.Count - 1)]; 
     304        if (target == player) 
     305        { 
     306            p2Points.Value += 1; 
     307            Multiplier2 = 0; 
     308        } 
     309        else 
     310        { 
     311            p1Points.Value += 1; 
     312            Multiplier1 = 0; 
     313        } 
    244314    } 
    245315 
     
    261331        if (_player == player) 
    262332        { 
    263             Keyboard.Listen(Key.A, ButtonState.Down, delegate { _player.Walk(Direction.Left); }, null); 
     333            Keyboard.Listen(Key.A, ButtonState.Down, delegate {  
     334            if(!isAttacking) 
     335                _player.Walk(Direction.Left); 
     336            }, null); 
    264337            Keyboard.Listen(Key.A, ButtonState.Released, delegate { _player.StopHorizontal(); }, null); 
    265             Keyboard.Listen(Key.D, ButtonState.Down, delegate { _player.Walk(Direction.Right); }, null); 
     338            Keyboard.Listen(Key.D, ButtonState.Down, delegate {  
     339                if(!isAttacking) 
     340                _player.Walk(Direction.Right); }, null); 
    266341            Keyboard.Listen(Key.D, ButtonState.Released, delegate { _player.StopHorizontal(); }, null); 
    267             Keyboard.Listen(Key.W, ButtonState.Pressed, Jump, null, _player, false); 
     342            Keyboard.Listen(Key.W, ButtonState.Pressed, delegate { 
     343                if(!isAttacking) 
     344                Jump(_player, true); }, null); 
    268345            Keyboard.Listen(Key.S, ButtonState.Down, GetDown, null, false); 
    269346            Keyboard.Listen(Key.Space, ButtonState.Pressed, delegate 
     
    279356        if (_player == player2) 
    280357        { 
    281             Keyboard.Listen(Key.Left, ButtonState.Down, delegate { _player.Walk(Direction.Left); }, null); 
    282             Keyboard.Listen(Key.Left, ButtonState.Released, delegate { _player.StopHorizontal(); }, null); 
     358            Keyboard.Listen(Key.Left, ButtonState.Down, delegate {  
     359                if(!isAttacking2) 
     360                _player.Walk(Direction.Left); }, null); 
     361            Keyboard.Listen(Key.Left, ButtonState.Released, delegate { 
     362                if(!isAttacking2) 
     363                _player.StopHorizontal(); }, null); 
    283364            Keyboard.Listen(Key.Right, ButtonState.Down, delegate { _player.Walk(Direction.Right); }, null); 
    284365            Keyboard.Listen(Key.Right, ButtonState.Released, delegate { _player.StopHorizontal(); }, null); 
    285             Keyboard.Listen(Key.Up, ButtonState.Pressed, Jump, null, _player, true); 
     366            Keyboard.Listen(Key.Up, ButtonState.Pressed, delegate { 
     367                if(!isAttacking2) 
     368                Jump(_player, true); }, null); 
    286369            Keyboard.Listen(Key.Down, ButtonState.Down, GetDown, null, true); 
    287370            Keyboard.Listen(Key.RightControl, ButtonState.Pressed, delegate 
     
    328411    } 
    329412 
     413    void AddIcon(Image _iconPic, double x, double y, double _widht, double _height, string _name, double textWidht, double textHeight, bool isIcon2) 
     414    { 
     415        if (isIcon2) 
     416        { 
     417            icon2 = new Label(_widht, _height); 
     418            icon2.Image = _iconPic; 
     419            icon2.X = x; 
     420            icon2.Y = y; 
     421            //_icon.Position = Camera.ScreenToWorld(new Vector(x, y)); 
     422            Layers[3].RelativeTransition = Vector.Zero; 
     423            Layers[3].IgnoresZoom = true; 
     424            Add(icon2, 3); 
     425 
     426            p2Points = new IntMeter(0); 
     427 
     428            Label pointScreen = new Label(); 
     429            pointScreen.X = icon2.X - 20; 
     430            pointScreen.Y = icon2.Y - 50; 
     431            pointScreen.Title = "Points"; 
     432 
     433            pointScreen.BindTo(p2Points); 
     434            Add(pointScreen); 
     435        } 
     436        else 
     437        { 
     438            icon1 = new Label(_widht, _height); 
     439            icon1.Image = _iconPic; 
     440            icon1.X = x; 
     441            icon1.Y = y; 
     442            //_icon.Position = Camera.ScreenToWorld(new Vector(x, y)); 
     443            Layers[3].RelativeTransition = Vector.Zero; 
     444            Layers[3].IgnoresZoom = true; 
     445            Add(icon1, 3); 
     446 
     447            p1Points = new IntMeter(0); 
     448 
     449            Label pointScreen = new Label(); 
     450            pointScreen.X = icon1.X + 20; 
     451            pointScreen.Y = icon1.Y - 50; 
     452            pointScreen.Title = "Points"; 
     453 
     454            pointScreen.BindTo(p1Points); 
     455            Add(pointScreen); 
     456        } 
     457       
     458        AddPlayerNames(_name, textWidht, textHeight,isIcon2); 
     459    } 
     460 
     461    void AddPlayerNames(string _name, double x, double y, bool isIcon2) 
     462    { 
     463        Label nameField = new Label(_name.Length * 13, 30, _name); 
     464        nameField.X = x; 
     465        nameField.Y = y; 
     466        Layers[3].RelativeTransition = Vector.Zero; 
     467        Layers[3].IgnoresZoom = true; 
     468        Add(nameField, 3); 
     469 
     470        if (isIcon2) 
     471            nameField.X = icon2.Left - nameField.Width / 2.0; 
     472        else 
     473            nameField.X = icon1.Right + nameField.Width / 2.0; 
     474         
     475        //if (_name == p2name) 
     476        //{ 
     477        //    while (nameField.Left < icon2.Right) 
     478        //        nameField.X -= 1; 
     479        //} 
     480    } 
     481 
    330482    void MovePlayer(PhysicsObject _object, Vector _vector) 
    331483    { 
     
    363515            if (_player.Left - 20 < _object.Right && _player.Left > _object.Right - 6) 
    364516            { 
    365                 MessageDisplay.Add("hitL"); 
    366517                punchNoice1.Play(); 
    367518 
     
    380531            if (_player.Right + 20 > _object.Left && _player.Right < _object.Left + 6) 
    381532            { 
    382                 MessageDisplay.Add("hitR"); 
    383533                punchNoice1.Play(); 
    384534                _object.Push(new Vector(1500 * _multiplier, 100 * _multiplier)); 
     
    392542        } 
    393543        if (_player == player) 
    394             _player.PlayAnimation(p1Punch); 
    395         else 
    396             _player.PlayAnimation(p2Punch); 
     544        { 
     545            isAttacking = true; 
     546 
     547            _player.PlayAnimation(p1Punch, () => 
     548                { 
     549                    _player.Stop(); 
     550                    Timer.SingleShot(0.5, delegate { isAttacking = false; }); 
     551                }); 
     552        } 
     553        else 
     554        { 
     555            isAttacking2 = true; 
     556            _player.PlayAnimation(p2Punch, () => 
     557            { 
     558                _player.Stop(); 
     559                Timer.SingleShot(0.5, delegate { isAttacking2 = false; }); 
     560            }); 
     561        } 
     562    } 
     563 
     564    void AddTimeCounter() 
     565    { 
     566        timeCounterSeconds = new IntMeter(60); 
     567        timeCounterMinutes = new IntMeter(1); 
     568 
     569        timeTimer = new Timer(); 
     570        timeTimer.Interval = 1; 
     571        timeTimer.Timeout += delegate { CountDown();}; 
     572        timeTimer.Start(); 
     573 
     574        timeScreenP = new Label(); 
     575        timeScreenP.TextColor = Color.White; 
     576        timeScreenP.DecimalPlaces = 1; 
     577        timeScreenP.Text = timeCounterMinutes + ":" + timeCounterSeconds; 
     578        timeScreenP.X = Screen.Center.X; 
     579        timeScreenP.Y = Screen.Top - 20; 
     580        Add(timeScreenP, 3); 
     581    } 
     582 
     583    void CountDown() 
     584    { 
     585        timeCounterSeconds.Value -= 1; 
     586        if(timeCounterSeconds >= 10) 
     587        timeScreenP.Text = timeCounterMinutes + ":" + timeCounterSeconds; 
     588 
     589        else 
     590            timeScreenP.Text = timeCounterMinutes + ":0" + timeCounterSeconds; 
     591 
     592        if (timeCounterSeconds.Value <= 0 && timeCounterMinutes > 0) 
     593        { 
     594            timeCounterMinutes.Value -= 1; 
     595            timeCounterSeconds.Value += 60; 
     596        } 
     597        if (timeCounterSeconds.Value <= 0 && timeCounterMinutes == 0) 
     598        { 
     599            WinScreen(); 
     600        } 
     601         
     602    } 
     603 
     604    void WinScreen() 
     605    { 
     606        if(p1Points > p2Points) 
     607        { 
     608            MessageWindow winScreen = new MessageWindow(p1name + " won!"); 
     609            winScreen.Closed += delegate { Begin(); }; 
     610            Add(winScreen); 
     611        } 
     612        else 
     613        { 
     614            MessageWindow winScreen = new MessageWindow(p2name + " won!"); 
     615            winScreen.Closed += delegate { Begin(); }; 
     616            Add(winScreen); 
     617        } 
    397618    } 
    398619 
Note: See TracChangeset for help on using the changeset viewer.