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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2013, 22:27   #1
nwhta
Форумчанин
 
Регистрация: 30.08.2013
Сообщений: 153
По умолчанию мини игра

Вот пошел я дальше к своей мечте и вот такую штуку написал
подскажите что не так а что делаю не плохо(любая помощь приветствуется). хотел вот написать метод shoot да не много напоролся на ошибки, выручайте плиз.

Код:
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 probe2
{
    public partial class Form1 : Form
    {
        int posX, posY; 
        public Form1()
        {
            InitializeComponent();
            posX = 100;
            posY = 100;
        }

        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Pen EllipsePen = new Pen(Color.Black);
            e.Graphics.DrawEllipse(EllipsePen, new Rectangle(posX, posY, 20, 20));
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {

            if (e.KeyValue == 87)
            {
                posY -= 5;
                Invalidate();
            }
            if (e.KeyValue == 83)
            {
                posY += 5;
                Invalidate();
            }
            if (e.KeyValue == 65)
            {
                posX -= 5;
                Invalidate();
            }
            if (e.KeyValue == 68)
            {
                posX += 5;
                Invalidate();
            }
           
        }
        private void shoot(KeyEventArgs e, PaintEventArgs e2)
        {
            float x = posX , y = posY;
            if (e.KeyValue == 32)
            {
                Pen linecolor = new Pen(Color.Black);
                PointF lineshoot = new PointF(x, y);
                e2.Graphics.DrawLines(linecolor, []lineshoot);
            }
        }
    }
}



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.
больше знаю, лучше сплю)

Последний раз редактировалось Serge_Bliznykov; 19.09.2013 в 11:04.
nwhta вне форума Ответить с цитированием
Старый 19.09.2013, 09:39   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
вот такую штуку написал
И что это за штука такая? По фрагменту кода можно лишь сказать, что это рисование на форме по нажатию клавиш. А дальше что? Рассказывайте, не стесняйтесь.
Цитата:
хотел вот написать метод shoot да не много напоролся на ошибки
Что за ошибки?Как по вашему должен работать этот метод? А как работает метод по факту?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 19.09.2013, 16:14   #3
nwhta
Форумчанин
 
Регистрация: 30.08.2013
Сообщений: 153
По умолчанию

Цитата:
Сообщение от GetMax Посмотреть сообщение
И что это за штука такая? По фрагменту кода можно лишь сказать, что это рисование на форме по нажатию клавиш. А дальше что? Рассказывайте, не стесняйтесь.

Что за ошибки?Как по вашему должен работать этот метод? А как работает метод по факту?
задумано так по нажатию клавиш мы ходим а по нажатию пробела стреляем.
вот а что не так написал хотел у вас спросить.....
больше знаю, лучше сплю)
nwhta вне форума Ответить с цитированием
Старый 19.09.2013, 16:17   #4
nwhta
Форумчанин
 
Регистрация: 30.08.2013
Сообщений: 153
По умолчанию

метод private void shoot я прописал сам без добавки студии.
больше знаю, лучше сплю)
nwhta вне форума Ответить с цитированием
Старый 19.09.2013, 18:34   #5
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Без приведенных ошибок сложно сказать точно. У вас при выстреле может линия не рисоваться потому что вы опять не перерисовываете форму. Ну и проверку нажатия клавиша выстрела лучше наверно организовать всё в том же Form1_KeyDown. Ну и не понятно когда и где у вас вызывается метод shoot().
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 19.09.2013, 20:39   #6
nwhta
Форумчанин
 
Регистрация: 30.08.2013
Сообщений: 153
По умолчанию

Цитата:
Сообщение от GetMax Посмотреть сообщение
Без приведенных ошибок сложно сказать точно. У вас при выстреле может линия не рисоваться потому что вы опять не перерисовываете форму. Ну и проверку нажатия клавиша выстрела лучше наверно организовать всё в том же Form1_KeyDown. Ну и не понятно когда и где у вас вызывается метод shoot().
ммммм спасибо..........
больше знаю, лучше сплю)
nwhta вне форума Ответить с цитированием
Старый 23.09.2013, 17:56   #7
nwhta
Форумчанин
 
Регистрация: 30.08.2013
Сообщений: 153
По умолчанию

Цитата:
Сообщение от GetMax Посмотреть сообщение
Без приведенных ошибок сложно сказать точно. У вас при выстреле может линия не рисоваться потому что вы опять не перерисовываете форму. Ну и проверку нажатия клавиша выстрела лучше наверно организовать всё в том же Form1_KeyDown. Ну и не понятно когда и где у вас вызывается метод shoot().
Код:
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 probe2
{
    public partial class Form1 : Form
    {
        int posX, posY; 

        public Form1()
        {
            InitializeComponent();
            posX = 100;
            posY = 100;
        }

        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 32)
            {
                shoot();
            }
           
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Pen EllipsePen = new Pen(Color.Black);
            e.Graphics.DrawEllipse(EllipsePen, new Rectangle(posX, posY, 20, 20));
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {

            if (e.KeyValue == 87)
            {
                posY -= 5;
                Invalidate();
            }
            if (e.KeyValue == 83)
            {
                posY += 5;
                Invalidate();
            }
            if (e.KeyValue == 65)
            {
                posX -= 5;
                Invalidate();
            }
            if (e.KeyValue == 68)
            {
                posX += 5;
                Invalidate();
            }
           
        }
        private void shoot(KeyEventArgs e, PaintEventArgs e2)
        {
            float x = posX , y = posY;

            Pen linecolor = new Pen(Color.Black);
            PointF lineshoot = new PointF(posX, posY);
            Invalidate();
                
            
        }
    }
}
Вы можете подсказать как вызвать метод shoot(с какими переменными он должен идти?)
больше знаю, лучше сплю)

Последний раз редактировалось Stilet; 23.09.2013 в 18:03.
nwhta вне форума Ответить с цитированием
Старый 23.09.2013, 18:04   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
как вызвать метод shoot
По идее так:
Код:
 KeyEventArgs e;
 PaintEventArgs e2;
 shoot(e,e2);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Мини-игра] Робо тир SaiLight Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 21.02.2013 22:08
Мини-игра на ДЕЛФИ. Николай1 Помощь студентам 5 28.11.2011 18:27
Помогите разобраться с VB (мини-игра) Geg[C/c++] Microsoft Office Excel 8 30.09.2010 18:16