C# Rusz głową, problem z zadaniem (grą pt. Ratuj ludzi)

0

Witam serdecznie wszystkich...

Na wstępie powiem tylko tyle, że jestem nowicjuszem jeśli chodzi o programowanie więc prosiłbym o wyrozumiałość w przypadku zadanie głupiego pytania:)
zacząłem zabawę z C# a w zasadzie z książką "C# Rusz głową" i już na wstępie mam problem z pierwszym zadaniem którym jest utworzenie projektu gry o nazwie Ratuj ludzi... Po wykonanych czynnościach dokładnie tak, jak mówi książka, przy próbie uruchomienia projektu wyświetla mi się błąd podany w załącznikach...

czy mógłby ktoś pomóc mi w rozwiązaniu problemu?

Z góry dziękuję i pozdrawiam..

2

A nie powinno tam być Canvas.Left a nie Canvas.left?
To w ogóle odpowiednia wersja Visual Studio?

Raczej mało osób ma tę książkę, więc bez wrzucenia kawałka kodu trudno będzie zgadnąć.

0

Nawet jeżeli było Canvas.left to pamiętać należy, że w książkach czasami są błędy. Zapis, który przedstawiłeś ewidentnie nie zgadza się z konwencją .netową, co zresztą potwierdza dokumentacja dla klasy Canvas na MSDN.

0

Pomogła zmiana na Canvas.Left :) dziękuję bardzo za pomoc i pozdrawiam:)

0

Witam,

Mam problem z tym samym zadaniem. Ze względu na różnice pomiędzy VS dla Win8 i VS dla WIn7 program nie rozpoznaje kilku linijek kodu. Czy ktoś z mądrzejszych kolegów mógłby udzielić rady?

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;

using System.Windows.UI.Xaml.Media.Animation;

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for Page1.xaml
    /// </summary>
    public partial class Page1 : Page
    {
        Random random = new Random();
        public Page1()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            AddEnemy();
        }

        private void AddEnemy()
        {
            ContentControl enemy = new ContentControl();
            enemy.Template = Resources["EnemyTemplate"] as ControlTemplate;
            AnimateEnemy(enemy, 0, playArea.ActualWidth - 100, "(Canvas.Left)");
            AnimateEnemy(enemy, random.Next((int)playArea.ActualHeight - 100),
                random.Next((int)playArea.ActualHeight - 100), "((Canvas.Top)");
            playArea.Children.Add(enemy);
        }

        private void AnimateEnemy(ContentControl enemy, double from, double to, string propertyToAnimate)
        {
            BeginStoryboard storyboard = new Storyboard() { AutoResizedEventArgsReverse = true, RepeatBehavior = RepeatBehavior.Forever };
            DoubleAnimation animation = new DoubleAnimation()
            {
                From = from,
                To = to,
                Duration = new Duration(TimeSpan.FromSeconds(random.Next(4, 6)))
            };
            storyboard.SetTarget(animation, enemy);
            storyboard.SetTargetProperty(animation, propertyToAnimate);
            storyboard.Children.Add(animation);
            storyboard.Begin();
        }
    }
}
0

A których to linijek Ci nie rozpoznaje?

Zamiast linii:

        storyboard.SetTarget(animation, enemy);
        storyboard.SetTargetProperty(animation, propertyToAnimate);

Powinno być:

            Storyboard.SetTarget(animation, enemy);
            Storyboard.SetTargetProperty(animation, new PropertyPath(propertyToAnimate));

I zamiast:

      BeginStoryboard storyboard = new Storyboard() { AutoResizedEventArgsReverse = true, RepeatBehavior = RepeatBehavior.Forever };

powinno być:

       Storyboard storyboard = new Storyboard() { AutoReverse = true, RepeatBehavior = RepeatBehavior.Forever };

kolejne:

       AnimateEnemy(enemy, random.Next((int)playArea.ActualHeight - 100),
            random.Next((int)playArea.ActualHeight - 100), "((Canvas.Top)");

to:

AnimateEnemy(enemy, random.Next((int)playArea.ActualHeight - 100), random.Next((int)playArea.ActualHeight - 100), "(Canvas.Top)");

(jeden nawias za dużo w cudzysłowie)

Zmiany sprawdzone w VS2017 dla frameworka 4.5.

0

To ja mam pytanie całkowicie basickowe. Jestem całkowitym nowicjuszem i powiedzcie proszę w jakim pliku powinnam utworzyć tą grę. Gdy otwieram "Pusty projekt (.NetFramework)" to nie mam nigdzie pliku .exe przez co nie moge zdebugować. Myślałam że to może wina oprogramowania (pracuje na Win8 a mam wersje programu VS 2017). Przerzuciłam się na Win 10 i tutaj jak otwieram plik "Pusta aplikacja (platforma uniwersalna systemu Win)" to pokazuje mi że VS wymaga skonfigurowania z wersją urządzenia i każe mi zmienić na środowisko deweloperskie. Cóż mam zrobić?

0
Biały Kot napisał(a):

To ja mam pytanie całkowicie basickowe. Jestem całkowitym nowicjuszem i powiedzcie proszę w jakim pliku powinnam utworzyć tą grę. Gdy otwieram "Aplikacja WPF (.NetFramework)" to nie mam nigdzie pliku .exe przez co nie moge zdebugować. Myślałam że to może wina oprogramowania (pracuje na Win8 a mam wersje programu VS 2017). Przerzuciłam się na Win 10 i tutaj jak otwieram plik "Pusta aplikacja (platforma uniwersalna systemu Win)" to pokazuje mi że VS wymaga skonfigurowania z wersją urządzenia i każe mi zmienić na środowisko deweloperskie. Cóż mam zrobić?

Poprawiony błąd

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.