2 Replies - 398 Views - Last Post: 16 April 2013 - 02:09 AM Rate Topic: -----

#1 Vaduvill  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 3
  • Joined: 16-April 13

Need help with my game

Posted 16 April 2013 - 12:17 AM

When my player intersects with goal or enemy 1 or enemy 2 nothing happens Please help me
I have tried to fix this for weeks now i have asked my friend teachers but they cant fix the problem
I rely on you guys now Please help me. Here is my code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Basic_Box_Game
{
    public partial class Form1 : Form
    {
        // gör 2 st enemy rektanglar, 1 player och 1 goal rektangel variabel
        // X,Y,Width,Height = (350, 600 , 50, 50);
        private Rectangle Player = new Rectangle(350, 0, 50, 50);
        private Rectangle Enemy1 = new Rectangle(0, 150, 75, 75);
        private Rectangle Enemy2 = new Rectangle(599, 350, 75, 75);
        private Rectangle Goal = new Rectangle(350, 600, 50, 50);

        public Form1()
        {
            InitializeComponent();
            // Detta gör så att man (kan) rita i själva (Form)
            this.MaximumSize = new Size(750, 750);
            this.MinimumSize = new Size(750, 750);
        }
        // Gör först en Paint event så att man ritar up det.
        private void Form1_Paint(object sender, PaintEventArgs e)
        {   // Sedan ritar du upp dem med e.Graphics metoden
            // Och ger den en färg. T.ex player är blå och red är enemy.
            e.Graphics.FillRectangle(Brushes.Blue, Player);
            e.Graphics.FillRectangle(Brushes.Red, Enemy1);
            e.Graphics.FillRectangle(Brushes.Red, Enemy2);
            e.Graphics.FillRectangle(Brushes.Green, Goal);
        }
        // om vill vill att Rektangeln player ska röra sig så
        // behövs det en (KeyDown Event)
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {   // Om vi ska röra på rektangeln så behöver vi
            // två nya variabler. en för X och en för Y.
            int PlayerX = Player.Location.X;
            int PlayerY = Player.Location.Y;

            // switch gör så att om man trycker på en knapp så ska detta hända typ..
            switch (e.KeyData)
            {// detta säger till player att din location ska ändras till
                // en ny location -20 i y-axeln om du trycker (arrow key Up) = Keys.Up
                // Du säger till programmet att den ska flytta 20 (pixlar) up.
                //och detta ska updateras helatiden = this.Refresh();
                // Och break betyder om du slutar att trycka up så ska det sluta röra sig.

                case Keys.Up:
                    Player.Location = new Point(PlayerX += 0, PlayerY -= 20);
                    this.Refresh();
                    break;

                case Keys.Down:
                    Player.Location = new Point(PlayerX += 0, PlayerY += 20);
                    this.Refresh();
                    break;

                case Keys.Left:
                    Player.Location = new Point(PlayerX -= 20, PlayerY += 0);
                    this.Refresh();
                    break;

                case Keys.Right:
                    Player.Location = new Point(PlayerX += 20, PlayerY += 0);
                    this.Refresh();
                    break;
            }
        }

             
            // ok, hitDetect() är en (custom metod) som gör att om enemy rör mig så händer detta
            // Allt handlar om, om den den (rör dig) eller (tar kontakt med dig), samma sak jag vet..
            // dig = Player
              public void HitDetect()
            // ok här har vi gjort att om Player Har kontakt med Goal så
            // ska en messagebox komma och säga att du har vunnit
	         {
	         if (Player.IntersectsWith(Goal))
	         {
	        MessageBox.Show("You Win!");
	         }
                  //här skapar vi nya positioner för enemys som vi gjorde för player
                  // vi ger dem en ny Y och X axel
                  int PlayerX = Player.Location.X;
                  int PlayerY = Player.Location.Y;
                  // Om Enemy1 har kontakt med dig
                  if (Enemy1.IntersectsWith(Player))
                  {
                      //Detta gör om den tar
                      //kontakt med dig så ska en messagebox säga att "YOU LOSE NOOB"
                      Player.Location = new Point(PlayerX = 350, PlayerY = 0);
                      MessageBox.Show("YOU LOSE NOOB!");
                  }
                  if (Enemy2.IntersectsWith(Player))
                  {
                      Player.Location = new Point(PlayerX = 350, PlayerY = 0);
                      MessageBox.Show("YOU LOSE NOOB!!!");
                  }

              }
               // vi måste lägga till en timer för att enemys ska röra på sig
               // Enabled = false  Byta det till True.
              private void timer1_Tick(object sender, EventArgs e)
              {
                  int EX1 = Enemy1.Location.X;
                  int EY1 = Enemy1.Location.Y;
                  int EX2 = Enemy2.Location.X;
                  int EY2 = Enemy2.Location.Y;

                  if (Enemy1.Location.X > 600)
                  {
                      Enemy1.Location = new Point(EX1 = 0, EY1 = 150);
                  }

                  Enemy1.Location = new Point(EX1 += 30, EY1 += 0);
                  this.Refresh();


                  if (Enemy2.Location.X < 0)
                  {
                      Enemy2.Location = new Point(EX2 = 599, EY2 = 350);
                  }

                  Enemy2.Location = new Point(EX2 -= 30, EY2 += 0);
                  this.Refresh();
              }

              
    }
}




Ignore the green text

Is This A Good Question/Topic? 0
  • +

Replies To: Need help with my game

#2 MrShoes  Icon User is offline

  • D.I.C Regular
  • member icon

Reputation: 314
  • View blog
  • Posts: 490
  • Joined: 13-June 12

Re: Need help with my game

Posted 16 April 2013 - 12:59 AM

Your HitDetect() method is never being called. You'll probably want to do that in the timer's tick event handler, or from the keydown event handler.
Was This Post Helpful? 2
  • +
  • -

#3 Vaduvill  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 3
  • Joined: 16-April 13

Re: Need help with my game

Posted 16 April 2013 - 02:09 AM

View PostMrShoes, on 16 April 2013 - 12:59 AM, said:

Your HitDetect() method is never being called. You'll probably want to do that in the timer's tick event handler, or from the keydown event handler.



Thanks It works now
Thank you!
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1