0 / 0 / 0
Регистрация: 06.12.2008
Сообщений: 15
1

Как создать несколько объектов с разными координатами в Rectangle

24.10.2012, 14:22. Показов 2676. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс easyBlock, в нем описание блоков, которые должны рисовать на форме
Один блок вывести не проблема, а вот сразу несколько оказалось проблемой

Как создать несколько объектов с разными координатами в Rectangle?
C#
1
2
3
4
5
6
7
8
        public easyBlock()
        {
            width=60;
            height=25;
 
            eBlockImage = Break_Shot.Properties.Resources.eBlock;
            eBlockRec = new Rectangle(x, y, width, height);
        }

Пробовал так:

Объявил массив: easyBlock[] eArray = new easyBlock[11];
И потом:
C#
1
2
3
4
5
6
7
8
9
10
11
            
            eArray[0] = new easyBlock();
            eArray[0].x = 0;
            eArray[0].y = 0;
            for (int i = 1; i < 11; i++)
            {
                eArray[i] = new easyBlock();
                eArray[i].x = eArray[i - 1].x + 60;
                eArray[i].y = eArray[i - 1].y;
                eBlock.drawBlock(paper);
            }
Но походу это полный бред. Хелп плиз :_)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2012, 14:22
Ответы с готовыми решениями:

в цикле создать несколько объектов с разными именами
Добрый день! Подскажите пожалуйста как в цикле создать несколько объектов с разными именами,...

Как автоматически создать несколько переменных с разными именами?
Товарищи программисты, есть строка с данными и в ней присутствуют точки, помогите пожалуйста...

Как создать сразу несколько объектов?
Ребят, как заспавнить вместо одного Coin сразу 10 например? public class Health : MonoBehaviour...

Как создать несколько одинаковых объектов?
С++ , SFML. Пожалуйста, покажите на каком-нибудь простейшем примере, как отрисовать один и тот же...

5
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.10.2012, 14:25 2
DecT, написать конструктор с параметрами?
C#
1
2
3
4
5
6
7
8
9
10
11
class EasyBlock
{
   public int Width {get;set;}
   public int Height {get;set;}
   
   public EasyBlock(int width, int height)
   {
      Width = width;
      Height = height;
   }
}
C#
1
2
var eb1 = new EasyBlock(); //width == height == 0;
var eb2 = new EasyBlock(100,50); //width == 100, height == 50
и да,название класса всегда пишется с большой буквы
1
0 / 0 / 0
Регистрация: 06.12.2008
Сообщений: 15
24.10.2012, 14:30  [ТС] 3
При попытке сделать так:
C#
1
2
3
4
5
6
7
8
9
            easyBlock eBlock1 = new easyBlock(0, 0);
            eBlock1.drawBlock(paper);
            easyBlock eBlock2 = new easyBlock(60, 0);
            eBlock2.drawBlock(paper);
            easyBlock eBlock3 = new easyBlock(120, 0);
            eBlock3.drawBlock(paper);
            paper = e.Graphics;
            paddle.drawPaddle(paper);
            ball.drawBall(paper);
И добавление в клаасе в строку: public easyBlock() - public easyBlock(int x, int y)
Рисуется нечто такое:
Название: deb51f6b714baf82a925c99ed1869428.png
Просмотров: 234

Размер: 9.9 Кб
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.10.2012, 14:32 4
DecT, вы чего сделать хотите? Это картинка появляется при сбое в загрузке изображения или отрисовки.
0
0 / 0 / 0
Регистрация: 06.12.2008
Сообщений: 15
24.10.2012, 14:48  [ТС] 5
break out(арканоид)
Я создал класс(полный код):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
 
namespace Break_Shot
{
    class easyBlock
    {
        public int X, Y, width, height;
        private Image eBlockImage;
        private Rectangle eBlockRec;
 
        public Rectangle EBlockRec
        {
            get {return eBlockRec; }
        }
 
        public easyBlock(int x, int y)
        {
            X = x;
            Y = y;
            width=60;
            height=25;
 
            eBlockImage = Break_Shot.Properties.Resources.eBlock;
            eBlockRec = new Rectangle(X, Y, width, height);
        }
 
        public void drawBlock(Graphics paper)
        {
            paper.DrawImage(eBlockImage,eBlockRec);
        }
    }
}
Пытаюсь сделать массив этих блоков, с разными координатами
Т.е. чтобы они при запуске формы расставлялись через определенный x,y, который указ в Rectangle(X, Y, width, height);

Добавлено через 40 секунд
Цитата Сообщение от Psilon Посмотреть сообщение
DecT, вы чего сделать хотите? Это картинка появляется при сбое в загрузке изображения или отрисовки.
На счет картинки разобрался
Но все равное прорисовывается только один блок

Добавлено через 1 минуту
Извиняюсь, забыл переменные добавить
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.10.2012, 14:50 6
DecT, я извиняюсь, я писал змейку, посмотрите класс визуализатора, может вас на какую-то мысль натолкнет. А то без кода всего проекта понять что-то трудно.
Вложения
Тип файла: rar Snake.rar (199.0 Кб, 30 просмотров)
0
24.10.2012, 14:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.10.2012, 14:50
Помогаю со студенческими работами здесь

Как создать на форме несколько объектов по данным из БД
Есть база данных, из которой я делаю запрос на выборку товаров. В запросе я выбираю картинку и...

Как программно создать несколько объектов, чтобы потом еще они и кликались???
Нужно программно создать несколько объектов, чтобы потом при нажатии на одном из них с этим...

Как создать Rectangle динамически?
Всем доброго времени суток!) Пишу приложение под Андроид и не могу понять в чем дело. Хочу...

Как создать проверку столкновения Rectangle и Vector2?
Как создать проверку столкновения Rectangle и Vector2 на С#


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru