Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2016, 11:49   #1
Vasiliy Pupkin
 
Регистрация: 16.05.2016
Сообщений: 8
По умолчанию Арканоид на Windows Forms C#

Всем привет! Как вы уже поняли по заголовку, мне необходимо написать арканоид на C#. Я написал по видеоуроку одного парня на youtube.com часть программы, в которую вошли: мяч, весло и отскок мяча. Но, так как я не сильно разбираюсь в C#, не знаю и не могу написать "кирпичи" и их уничтожение. Затем и обратился к Вам на форум с просьбой. Конкретный вопрос: с помощью чего можно реализовать кирпичи и их уничтожение при столкновении с шаром? Помогите мне, пожалуйста. В пятницу сдавать надо код, а мне чуть-чуть осталось. Код №1 это код весла, №2 - мяча, №3 - код формы.

№1

Код:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BrickOut
{
    public class весло
    {
        private int x, y, width, height;
        private Image PaddleImage;
        private Rectangle paddleRec;

        public Rectangle RecPaddle
        {
            get { return paddleRec; }
        }
        public весло()
        {
            x = 0;
            y = 550;
            width = 100;
            height = 7;
            PaddleImage = Image.FromFile("Paddle.png");
            paddleRec = new Rectangle(x, y, width, height);
        }

        public void drawPaddle(Graphics paper)
        {
            paper.DrawImage(PaddleImage, paddleRec);
        }
        public void MovePaddle(int mouseX)
        {
            paddleRec.X = mouseX - (paddleRec.Width / 2);
        }
    }
}
№2

Код:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BrickOut
{
    public class Ball
    {
        private int x, y, width, height;
        private int xSpeed, ySpeed;
        private Random randSpeed;

        private Image ballImage;
        private Rectangle ballRec;

        public Rectangle BallPaddle
        {
            get { return ballRec; }
        }
        public Ball()
        {
            randSpeed = new Random();
            x = 150;
            y = 200;
            width = 20;
            height = 20;

            xSpeed = randSpeed.Next(5,7);
            ySpeed = randSpeed.Next(5,7);
            ballImage = Image.FromFile("ball.png");
            ballRec = new Rectangle(x, y, width, height);
        }

        public void drawBall(Graphics paper)
        {
            paper.DrawImage(ballImage, ballRec);
        }
        public void moveBall (Graphics paper)
        {
            ballRec.X += xSpeed;
            ballRec.Y += ySpeed;
        }

        public void collision()
        {
            if (ballRec.X < 0 || ballRec. X > 570)
            {
                xSpeed = -xSpeed;
            }
            if (ballRec.Y < 23)
            {
                ySpeed = -ySpeed;
            }
            if (ballRec.Y == 600)
            {               
                System.Windows.Forms.MessageBox.Show("Проиграл!");
            }
        }
        public void hitPaddle(Rectangle paddleRec)
        {
            if (paddleRec.IntersectsWith(ballRec))
            {
                ySpeed = -ySpeed;
            }
        }
    }
}
№3

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BrickOut
{
    public partial class Form1 : Form
    {

        Graphics paper;
        весло paddle = new весло();
        Ball ball = new Ball();

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            
            paper = e.Graphics;
            paddle.drawPaddle(paper);
            ball.drawBall(paper);
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            paddle.MovePaddle(e.X);
            this.Invalidate();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            ball.moveBall(null);
            ball.collision();
            ball.hitPaddle(paddle.RecPaddle);
            this.Invalidate();

        }

        private void выходToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Vasiliy Pupkin; 16.05.2016 в 13:36.
Vasiliy Pupkin вне форума Ответить с цитированием
Старый 16.05.2016, 11:58   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так и чем помочь-то? В чем именно проблема?
Вряд ли у кого-то возникнет желание полностью делать его за вас, кроме раздела Фриланс за вознаграждение.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 16.05.2016, 12:09   #3
Vasiliy Pupkin
 
Регистрация: 16.05.2016
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Так и чем помочь-то? В чем именно проблема?
Вряд ли у кого-то возникнет желание полностью делать его за вас, кроме раздела Фриланс за вознаграждение.
Так я же написал, что мне именно нужно). "Мне нужен класс с кирпичиками их реализация". Я сам это не могу сделать.
Vasiliy Pupkin вне форума Ответить с цитированием
Старый 16.05.2016, 12:22   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну я и говорю, что это не конкретный вопрос, а "сделайте за меня".

Надо самостоятельно делать что-то для решения своей задачи, изучать материал на эту тему, задавать более конкретные вопросы если возникнут, а не просто пытаться переложить все на кого-то другого.

Если нет никаких идей, вопросов и т.п., то значит вы не пытались решить свою задачу, кроме копипаста за автором урока
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 16.05.2016, 12:37   #5
Vasiliy Pupkin
 
Регистрация: 16.05.2016
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну я и говорю, что это не конкретный вопрос, а "сделайте за меня".

Надо самостоятельно делать что-то для решения своей задачи, изучать материал на эту тему, задавать более конкретные вопросы если возникнут, а не просто пытаться переложить все на кого-то другого.

Если нет никаких идей, вопросов и т.п., то значит вы не пытались решить свою задачу, кроме копипаста за автором урока
Суть в том, что я перевелся на другую специальность в университете и не успел разобраться в Си шарпе, а мне надо сдать курсовую. Задам тогда конкретный вопрос: что лучше использовать для создания кирпичей? И как правильно прописать это.
Vasiliy Pupkin вне форума Ответить с цитированием
Старый 16.05.2016, 14:26   #6
Vasiliy Pupkin
 
Регистрация: 16.05.2016
Сообщений: 8
По умолчанию

Прошу, мне нужна помощь!
Vasiliy Pupkin вне форума Ответить с цитированием
Старый 16.05.2016, 15:24   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

"как правильно прописать" это все еще слишком унылый и неконкретный вопрос

Не существует единственно-правильного кода для "прописывания", любую задачу можно решить разными способами.

И перед тем как "прописывать", для начала надо четко сформулировать задание: что и как должно работать и т.п.

Потом как-то разделить это на подзадачи/компоненты/..., продумывать алгоритм для каждой части, реализовывать его на выбранном языке программирования.

Ну или не париться, заплатить кому-то во фрилансе и идти гулять Или спихнуть задачу кому-то другому. Или пойти в армию/на работу/другую специальность/...

Цитата:
что лучше использовать для создания кирпичей?
глину, например.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 16.05.2016, 16:11   #8
Vasiliy Pupkin
 
Регистрация: 16.05.2016
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
"как правильно прописать" это все еще слишком унылый и неконкретный вопрос

Не существует единственно-правильного кода для "прописывания", любую задачу можно решить разными способами.

И перед тем как "прописывать", для начала надо четко сформулировать задание: что и как должно работать и т.п.

Потом как-то разделить это на подзадачи/компоненты/..., продумывать алгоритм для каждой части, реализовывать его на выбранном языке программирования.

Ну или не париться, заплатить кому-то во фрилансе и идти гулять Или спихнуть задачу кому-то другому. Или пойти в армию/на работу/другую специальность/...


глину, например.
Не отвечайте сюда. Вы провоцируете на флуд своими глупыми ответами. Все, что нужно, прописано в первом посте. Если Вам ничего не понятно или Вы делаете вид, что ничего не понятно - Ваши проблемы. Писать не по делу и я могу. Я попросил помощи, а не обвинений. И я ведь прошу не всю программу мне доделать, а написать лишь одну недостающую часть.

Последний раз редактировалось Vasiliy Pupkin; 16.05.2016 в 16:24.
Vasiliy Pupkin вне форума Ответить с цитированием
Старый 16.05.2016, 16:59   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Помощь это когда есть попытки что-то сделать, идеи, вопросы. А делать полностью за вас (не важно всю ли программу или ее часть) очень маловероятно, что кто-то захочет, особенно когда задача не на 5 минут + нет четкого ТЗ и придется еще и его придумывать.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 16.05.2016, 19:53   #10
Vasiliy Pupkin
 
Регистрация: 16.05.2016
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Помощь это когда есть попытки что-то сделать, идеи, вопросы. А делать полностью за вас (не важно всю ли программу или ее часть) очень маловероятно, что кто-то захочет, особенно когда задача не на 5 минут + нет четкого ТЗ и придется еще и его придумывать.
Спасибо. Ответили на другом форуме.
Vasiliy Pupkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ и windows forms mad_ded Windows Forms 3 05.02.2015 17:01
Windows forms qwot C# (си шарп) 3 05.12.2014 22:08
с# windows forms Илья2014 Windows Forms 2 15.02.2014 22:38
Windows Forms masashama Windows Forms 12 14.02.2011 16:14
windows.forms *stRong* Помощь студентам 0 04.06.2010 04:39