Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/30: Рейтинг темы: голосов - 30, средняя оценка - 4.53
 Аватар для Веселый
87 / 88 / 48
Регистрация: 12.10.2013
Сообщений: 1,103

При компиляции выдает ошибку: Ошибка1 "GameCore.Form1.Dispose (bool)": не найден метод

03.12.2013, 04:16. Показов 5862. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код . При компиляции выдает ошибку:Ошибка1 "GameCore.Form1.Dispose(bool)": не найден метод, пригодный для переопределения.Как утранить?

Код:1


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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
 
namespace GameCore
{
    public abstract class ObjectDrawable
    {
        public SizeF Size { get; set; } //У всех объектов в игре есть размер
        public PointF Position { get; set; } //так же как и позиция
        public RectangleF Bounds { get { return new RectangleF(this.Position, this.Size); } } //зная позицию и размер можно получить границы объекта
        public Image Texture { get; set; } // ну и естественно какой же это игровой объект без его графического представления, текстуры
        public IContainer Parent { get; set; } //у кажого объекта есть родитель, собственно будет удобнее удалять самого себя из списка при разрушении/удалении объекта
//например Parent.Remove(this);
 
        protected ObjectDrawable(PointF position, SizeF size, Image texture, IContainer parent)
        {
            this.Position = position;
            this.Size = size;
            this.Texture = texture;
            this.Parent = parent;
        }
 
        //абстрактные методы, их будем реализовывать в каждом потомке посвоему, 
        //хотя метод Draw можно реализовать прямо здесь, вряд-ли он измениться
        public abstract void Update(float dt); //обновление состояния объекта
        public abstract void Draw(Graphics graphics); //отрисовка объекта
    }
 
    class Wall : ObjectDrawable
    {
        public Wall(PointF position, SizeF size, Image texture, IContainer parent) : base(position, size, texture, parent)
        {
        }
 
        public override void Update(float dt)
        {
            //Так как это стена то и обновлять здесь нечего, пускай себе стоит
        }
 
        public override void Draw(Graphics graphics)
        {
            graphics.DrawImage(this.Texture, Position); //А вот отрисовать текстурку в указаной точке не помешает
        }
    }
 
    class Tank : ObjectDrawable
    {
        //А вот и первый "живой" подвижный объект, а раз он движется, значит у него есть скорость
        PointF Velocity { get; set; } //По сути это вектор, но так как конкретно под ВинФорм нет реализации класса вектор, то обойдемся Float Point'ом
        public Tank(PointF position, SizeF size, Image texture, PointF velocity, IContainer parent) : base(position, size, texture, parent)
        {
            this.Velocity = velocity;
        }
 
        public override void Update(float dt)
        {
            //здесь обрабатываем нажатия клавишь и в зависимости от значений задаем нашу скорость
        }
 
        public override void Draw(Graphics graphics)
        {
            graphics.DrawImage(this.Texture, Position);
        }
    }
    //Невероятно полезный интерфейс, взмахом волшебной палочки позволяет добавить/удалить потомка, 
    //что бы потом можно было перерисовать все элементы одним махом
    //Реализуем этот интерфейс в классе который будет отвечать за отрисовку картинки
    public interface IContainer
    {
        List<ObjectDrawable> Childs { get; set; }
        void Register(ObjectDrawable child);
        void Register(IEnumerable<ObjectDrawable> childs); // перегрузка для множественного добавления
        void Remove(ObjectDrawable child);
    }
 
    class MainForm : Form, IContainer
    {
        public MainForm()
        {
            //здесь подписываемся на какойнибудь таймер или на Application.Idle в котором будет происходить сначало обновление, а потом отрисовка всех объектов
            Application.Idle += Application_Idle;
        }
 
        private DateTime prevTime = DateTime.Now; // перменная для подсчета дельты времени, короче потребуется для плавной анимации
        private void Application_Idle(object sender, EventArgs eventArgs)
        {
            DateTime currTime = DateTime.Now;
            TimeSpan delatTime = currTime - prevTime;
            float gameTime = (float)delatTime.TotalMilliseconds / 1000f;
            var graphics = Graphics.FromImage(pictureBox1.Image); //Пускай будет picturebox
 
            graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; 
            graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
            graphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver; 
            graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
            
            
            foreach (ObjectDrawable child in this.Childs)
            {
                child.Update(gameTime);
            }
 
            foreach (ObjectDrawable child in this.Childs)
            {
                child.Draw(graphics);
            }
            pictureBox1.Invalidate(); //Прикажем перерисоваться
            prevTime = currTime;
        }
 
        public List<ObjectDrawable> Childs
        {
            get;
            set;
        }
 
        public void Register(ObjectDrawable child)
        {
            Childs.Add(child);
        }
 
        public void Register(IEnumerable<ObjectDrawable> childs)
        {
            Childs.AddRange(childs);
        }
 
        public void Remove(ObjectDrawable child)
        {
            Childs.Remove(child);
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.12.2013, 04:16
Ответы с готовыми решениями:

Графический ключ. Form1.Dispose(bool)": не найден метод, пригодный для переопределения
При запуске появляется ошибка &quot;WindowsFormsApplication238.Form1.Dispose(bool)&quot;: не найден метод, пригодный для переопределения. Что с...

Ошибка: "Form1.Dispose(bool)": не найден метод, пригодный для переопределения
Доброго времени суток. Помогите разобраться с этой ошибкой, перечитал весь гугл и яндекс но решения так и не нашел :( Ошибку выдает - ...

Ошибка 'projectname.Form1.Dispose(bool)': no suitable method found to override
При запуске проекта выдает ошибку Dispose.. namespace Incercarea4 { partial class Form1 { /// &lt;summary&gt; ...

3
 Аватар для akafeanor
60 / 59 / 15
Регистрация: 04.05.2010
Сообщений: 161
03.12.2013, 10:26
Ну ты и намудрил.
1.zip

Не по теме:

По сабжу, имхо, не стоит делать игры в winforms. Или читай как создаются формочки в VS.

0
 Аватар для Веселый
87 / 88 / 48
Регистрация: 12.10.2013
Сообщений: 1,103
04.12.2013, 00:51  [ТС]
Код не мой .Просто попробовал запустить в своей VS 2008.

Новый вариант тоже не скомпилировался.
0
 Аватар для akafeanor
60 / 59 / 15
Регистрация: 04.05.2010
Сообщений: 161
04.12.2013, 09:12
Ну тогда держи попунктно. Я создал новый проект windows forms, по умолчанию, ничего не изменив.

В Обозреватели решения меняешь название формы с Form1.cs на MainForm.cs
Файл Program.cs:
1. Поменять namespace на GameCore
2. Нужно запускать не стандартный Form1, а твоё форму
C#
1
Application.Run(new MainForm());
Изменить с
C#
1
new Form1()
на
C#
1
new MainForm()
Файл MainForm.Designer.cs (бывший файл Form1.cs)
1. изменяем
C#
1
partial class Form1
на
C#
1
partial class MainForm
Файл MainForm.cs бывший (Form1.cs)
1. Меняем с
C#
1
class MainForm : Form, IContainer
на
C#
1
partial class MainForm : Form, IContainer
2. Комментим в методе Application_Idle()
всё что ниже
C#
1
var graphics = Graphics.FromImage(pictureBox1.Image);
до конца метода.
3. После этого можно будет зайти в конструктор формы. Там кидай на форму picturebox.
4. Расскомментируй обратно код в Application_Idle.
5. Ещё в конструктор формы нужно будет добавить метод:
C#
1
InitializeComponent();
Дальше код будет комплироваться, но нужно что то помещать в picturebox. Я думаю тебе виднее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2013, 09:12
Помогаю со студенческими работами здесь

При компиляции , VS2017 выдаёт ошибку в виде "Файл не найден"
Только установил VS2017 , создал проект &quot;Консольное приложение&quot; , там уже было прописан вывод cout&lt;&lt;&quot;Hell \n&quot;; Вот что...

Метод вычисляющий значения выдает ошибку компиляции
Добрый день возникла проблема.Выдаёт ошибку при компиляции,вроде всё правильно делал. using System; using System.Collections.Generic; ...

Выдает ошибку при компиляции
Вот скрин

Выдает ошибку при компиляции
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; typedef struct _SLine { double start; double end; double length() { return...

При компиляции выдает ошибку
Добрый день! При компиляции выдает ошибку: Unit1.pas(26): H2164 Variable 'regular' is declared but never used in...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru