Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Re_translator
0 / 0 / 0
Регистрация: 13.06.2019
Сообщений: 14
1

Отображение объекта

14.06.2019, 12:37. Просмотров 176. Ответов 0

Есть часть кода игры типа Spase Invaders:

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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
 
namespace Invasion_of_gooks
{
    public partial class MainWindow : Window
    {
        System.Windows.Threading.DispatcherTimer Timer;
        DateTime date = new DateTime();
 
        //создание объекта прямоугольник
        public Rectangle helicopter = new Rectangle();
 
        //координаты вертолёта
        public int x = 633;
        public int y = 500;
 
        public MainWindow()
        {
            gotomainmenu:
 
            InitializeComponent();
 
            can.KeyDown += new KeyEventHandler(Key_Down);
            can.Focusable = true;
            FocusManager.SetFocusedElement(Invasion_of_gooks, can);
 
            //таймер
            Timer = new System.Windows.Threading.DispatcherTimer();
            Timer.Tick += new EventHandler(DispatcherTimer_Tick);
            Timer.Interval = new TimeSpan(0, 0, 1);
 
            Add_Helicopter();
        }   
 
        private void Start_Click(object sender, RoutedEventArgs e)
        {
            //делаем элементы меню неактивными
            Settings.IsEnabled = false;
            Start.IsEnabled = false;
            Exit.IsEnabled = false;
            upgrades.IsEnabled = false;
            achievements.IsEnabled = false;
 
            //делаем элементы меню невидимыми
            Settings.Visibility = Visibility.Collapsed;
            Start.Visibility = Visibility.Collapsed;
            Exit.Visibility = Visibility.Collapsed;
            upgrades.Visibility = Visibility.Collapsed;
            achievements.Visibility = Visibility.Collapsed;
 
            Timer.Start();
        }
 
        private void Exit_Click(object sender, RoutedEventArgs e)
        {
            //выход из игры
            Environment.Exit(0);
        }
 
        private void DispatcherTimer_Tick(object sender, EventArgs e)
        {
            date = date.AddSeconds(1);
            stopwatch.Content = date.Hour.ToString() + " : " + date.Minute.ToString() + " : " + date.Second.ToString();
        }
 
        private void Add_Helicopter()
        {
            //установка цвета линии обводки и цвета заливки при помощи коллекции кистей
            helicopter.Stroke = Brushes.Black;
            helicopter.Fill = Brushes.SkyBlue;
 
            //параметры выравнивания
            helicopter.HorizontalAlignment = HorizontalAlignment.Left;
            helicopter.VerticalAlignment = VerticalAlignment.Center;
 
            //размеры прямоугольника
            helicopter.Height = 100;
            helicopter.Width = 100;
            helicopter.Margin = new Thickness(x, y, 0, 0);
 
            //добавление объекта в сцену
            can.Children.Add(helicopter);
 
            //отрисовка вертолётика
            ImageBrush helicopter_image = new ImageBrush
            {
                ImageSource = new BitmapImage(new Uri(@"pack://application:,,,/images/attack_helicopter_desert_camo.png", UriKind.Absolute))
            };
            helicopter.Fill = helicopter_image;
        }
 
        private void Key_Down(object sender, KeyEventArgs e)
        {
            switch (e.Key)
            {
                //если нажата стрелочка вверх, то коордианта вертолётика смещается вверх
                case Key.W:
                    helicopter.RenderTransform = new TranslateTransform(x, y - 1);
                    y -= 1;
                    break;
 
                //если нажата стрелочка вправо, то коордианта вертолётика смещается вправо
                case Key.D:
                    helicopter.RenderTransform = new TranslateTransform(x + 1, y);
                    x += 1;
                    break;
 
                //если нажата стрелочка вниз, то коордианта вертолётика смещается вниз
                case Key.S:
                    helicopter.RenderTransform = new TranslateTransform(x, y + 1);
                    y += 1;
                    break;
 
                //если нажата стрелочка влево, то коордианта вертолётика смещается влево
                case Key.A:
                    helicopter.RenderTransform = new TranslateTransform(x - 1, y);
                    x -= 1;
                    break;
 
                //если нажата клавиша Escape, то вызывается меню паузы
                case Key.Escape:
                    PauseMenu pause = new PauseMenu();
                    Timer.Stop();
                    if (pause.ShowDialog()==true)
                    {
 
                    }
                    else
                    {
                        Timer.Start();
                    }
                    break;
            }
        }
    }
}
После нажатия любой из кнопок WASD helicopter исчезает, а должен менять свою координату (так же на стрелочках). Координата почему-то не изменяется. Помогите исправить это, курсач в среду сдавать :\
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2019, 12:37
Ответы с готовыми решениями:

Binding свойства объекта в combobox к свойству другого объекта :)
Всем привет)) У меня есть WPF приложение на котором расположен ComboBox с объектами этого класа ...

Отображение объекта на Scene
Если мы добавим через графический интерфейс Adobe Flash на сцену объект и перейдем на другую сцену,...

Отображение объекта на JSP
Не могу найти ошибку. Может не правильно понимаю что. Направьте, пожалуйста. ...

Отображение видимых частей объекта
Здравствуйте. Пишу игру на C# для курсовика и возникли пара вопросов. Каким образом можно сделать...

Отображение и скрытие объекта по клику
Здравствуйте. Занимаюсь AS3 недавно. Нужен совет. Задача: при нажатии на кнопу проигрывается...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2019, 12:37

Поле объекта OLE отображение фото
В таблице есть поле объекта OLE, в котором хранится фотография. Как отобразить ее на форме и в...

Отображение значения объекта во время отладки
Здравствуйте! Можно ли в Delphi изменить функцию, выдающую значение объекта по время отладки? Я...

Отображение объекта на форме в течение определенного времени
Здравствуйте! Требуется, что запись, допустим, в Label1.Сaption отображалась определенное время,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru