Visual Studio ("Rusz głową" gra "Ratuj ludzi" ) brak pliku .exe i inne problemy

0

Cześć
Jestem bardzo początkująca jeśli chodzi o te sprawy więc proszę o duuuużo wyrozumiałości.
Próbuje zrobić grę "Ratuj ludzi" z książki "Rusz głową" w programie Visual Studio 2017. Po utworzeniu pliku "Aplikacja WPF(.Net Framework)" i podejmowaniu kroków takich jak w książce, nie mogę zdebugować i rozpocząć działania programu ponieważ nie mam pliku .exe (szukałam już wszędzie pomocy, na różnych blogach, forach itp. i nigdzie nie znalazłam takiej sytuacji) . Program podpowiada, "żeby to zadziałało przenieś plik .exe do folderu Debug". Ale ja nie mam nigdzie tego pliku.
Drugim problemem jest to że po utworzeniu z c# linijek z nazwami własnymi odnoszącymi się do tego co jest w XAML mam wszystkie te nazwy popodkreślane (np. playArea, progressBar itp.). W książce jest napisane, że musimy po prostu zmienić nazwy tych elementów. Zrobiłam to jak to książka mówi i nic to nie zmieniło. Wszystkie playArea, human, progresBarr podkreślone.
Przy nadawaniu poszczególnym elementom procedur zdarzeń związanych z myszką, gdy klikam na dane procedury pokazuje mi się komunikat "Nie można dodać procedury obsługi zdarzeń".
Proszę o pomoc bo mi już ręce opadły.

1

Skoro masz błędy w kodzie ("po utworzeniu z c# linijek z nazwami własnymi odnoszącymi się do tego co jest w XAML mam wszystkie te nazwy popodkreślane"), to nie znajdziesz pliku exe, bo niby jak ma być wygenerowany z nieprawidłowego kodu?

0

Jestem bardzo początkująca. Ok jedno już rozumiem. A wiesz czemu nie chce mi tych nazw "przyjąć". Gdy naciskam na element podana nazwa widnieje (tak samo jak jest to pokazane w książce), lecz w c# jest podkreślona jako błąd.

0

Skoro jesteś bardzo początkująca to aby na pewno dobry pomysł tworzyć grę? Nawet jeśli to krok po kroku z książki.

0

Pomysł nie wiem czy dobry...nie oceniam. Proszę tylko o pomoc, wskazówkę.

0

Chodzę na kurs na którym dostaliśmy tą książkę i bez wyjaśnienia dostaliśmy polecenie żeby wykonać tą grę. Muszę ją skończyć. Z błędami w książce sobie poradziłam, teraz zrozumiałam o co chodzi z plikiem .exe. Nie mogę sobie poradzić tymi nazwami, które są podkreślone mimo nadanej nazwy obiektom (cały kod już napisałam tylko te nazwy mi podkreśla).
Proszę o pomoc bo tak jak pisałam muszę dokończyć tą grę i w takim razie proszę o doradzenie jak mogę się doszkolić i skąd czerpać wiedzę (na kursie prowadzący po uruchomieniu VS cieszył się jak dziecko, że wszystko wygląda tak jak w książce).
Proszę zatem o pomoc w sprawie tych podkreślonych nazw.

0

Jeśli faktycznie chcesz pomocy to zarzuć chociaż niezbędną do pomocy częścią kodu. Możemy zgadywać, może nawet byśmy zgadli, ale komu się chce? Przy okazji warto pamiętać, że nawet w książce zdarzają się błędy.

0

Tak więc podam przykład bo tak jak mówiłam wszystkie nazwy obiektów, które nadałam w xaml są podkreślone w c#
W xaml widać, że nazwa jest nadana

<ProgressBar x:Name="progressBar" Grid.Column="1" Grid.Row="2" Height="20" Margin="0,71,0,49"/>
<Canvas x:Name="playArea" Grid.Row="1" Grid.ColumnSpan="3">
<Button x:Name="startButton" Content="Start" Grid.Row="2" Width="103" Background="#FFE0C1FF" BorderBrush="#FF169C10" Foreground="#FF264209" Height="41" FontWeight="Bold">
<TextBlock x:Name="gameOverText" Canvas.Left="232" TextWrapping="Wrap" Canvas.Top="63" FontFamily="Bodoni MT Black" FontSize="72" FontWeight="Bold" Foreground="#FF630000" Height="112"><Run Text="Koniec gry"/><LineBreak/><Run/></TextBlock>

Natomiast w c# mam podkreślone wszystkie te nazwy(pogrubione)

void targetTimer_Tick(object sender, object e)
        {
           ** progressBar**.Value += 1;
            if (**progressBar**.Value >= **progressBar**.Maximum)
                EndTheGame();
        }

        private void EndTheGame()
        {
            if (!**playArea**.Children.Contains(**gameOverText**))
            {
                enemyTimer.Stop();
                targetTimer.Stop();
                humanCaptured = false;
              **  startButton**.Visibility = Visibility.Visible;
               ** playArea**.Children.Add(**gameOverText**);
            }
        }
0

Jedna z solucji: Zmiana właściwości w XAMLu na wielką literę. "x:name = "progressBar" na "x:Name = "progressBar" i tak ze wszystkimi. I gdyby wciąż nie działało to w zakładkach "Kompilowanie -> Kompiluj ponownie rozwiązanie".

EDIT: Poprawka wprowadzona przez moda wybiła mnie z tropu w temacie Twojego kodu. Nazwy właściwości są normalnie po sformatowaniu przez niego. Tak czy inaczej, jeśli właściwości masz z wielkiej litery, kod C# jest pisany w pliku xxx.xaml.cs i korzystałaś z ponownego kompilowania, to już nie mam pojęcia. Wkleiłem kod już sformatowany przez moda do siebie i nie licząc braku niektórych niewklejonych fragmentów to wszystko działa bez problemu.

0

Wszystko już działa poprawnie. Całe to zamieszanie spowodowane pewnym brakiem w pierwszej linijce xaml (najważniejsze to przyznać się do błędu).
Dziękuję za zaangażowanie. Już bałam się że borykam się z jakąś chorobą psychiczną bo przez kilka dni się z tym borykałam a okazało się że brakuje jednej literki na samym początku.
Jeszcze raz dziękuję za odpowiedzi

0

Rusz głową to dobra książka, wiele rzeczy fajnie prezentuje i można się dużo nauczyć.
Niestety, części dotyczące xaml są o pupę potłuc. Nie jest to wina autorów książki, tylko Microsoftu, który wprowadził w swoim produkcie kilka zmian. Swoją drogą, autorzy niby xamla chwalą, że taki nowoczesny i przyszłościowy... a cwaniaki 3/4 książki opierają na formsach :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1