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.
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?
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.
Skoro jesteś bardzo początkująca to aby na pewno dobry pomysł tworzyć grę? Nawet jeśli to krok po kroku z książki.
Pomysł nie wiem czy dobry...nie oceniam. Proszę tylko o pomoc, wskazówkę.
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.
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.
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**);
}
}
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.
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
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 :)