Just nu i M3-nätverket
Gå till innehåll

Hjälp med skoluppgift - Spel


Mrc#

Rekommendera Poster

Hejsan. Håller på att göra ett väldigt simpelt spel då jag endast går Programmering A på gymnasiet. Så vill inte ha någon kritik på hur dåligt uppbyggd strukturen är etc. Vill bara få det att fungera. Konstruktiv kritik fungerar dock. Har några problem jag skulle behöva få hjälp med.

 

Har bifogat ett textdokument med koden om hur den ser ut.

 

 

designgd.png

 

Uploaded with ImageShack.us

 

Här är designen. Det jag har gjort nu, är att slumpmässigt randomas en bild när programmet startas. Det finns 50 bilder i form utav en case som randomas.

 

Nu är jag fast. Spelet var tänkt att randoma en bild varje 2:ndre sekund och få den förra bilden bli försvinna och man ska hinna klicka på varje bild för att få en såkallad poäng som skrivs ut i en label.

 

Ungefär såhär :

 

Du får en timer på 1 minut på hela spelet.

 

En label ska finnas i sidan utav formen där det skrivs ut hur många gånger du lyckats trycka på en bild. I slutet av minuten ska programmet breakas och en messagebox ska synas med resultat om hur många du hunnit klicka på omloppet av en minut. Hur går jag vidare?

 

 

Snabb summering om frågeställningarna:

 

1. Hur sätter jag en timer på spelet och när timern är ute få en messagebox att visa resultat och få randomen att stoppas.

2. Hur får jag så att " Slumptal1 = random1.Next(1, 51); " randomas i en intervall på två sekunder

3. Hur integrerar jag varje bild klick i en lable som plussar (+) ihop alla lyckade klick?

 

Förstår att ni vill att jag ska använda mig utav en bild och få den att slumpmässigt flytta sig i x-y led men det har jag ingen aning om hur jag ska genomföra.

 

Kan även betala för assistans igenom teamviewer eller dyl.

 

 

spel.txt

Länk till kommentar
Dela på andra webbplatser

Du har ett Timer objekt. Det har en intervall som du sätter till förslagsvis 2000. Det betyder att timern kommer ticka varrannan sekund. Sen har du en Tick event på det. Det är eventet som kommer köras enligt ditt intervall. Där ska du flytta på din bild.

 

Varje gång timern tickar så ökar du en integer med tillexempel två. Sen kan du göra en if på den. Blir din integer 60 så har tiden tagit slut.

 

Lite kod för att komma igång. Jag har lagt min picturebox i en panel. Sen med slumpgeneratorn så plockar jag ut x och y för vart bilden skall ritas ut. Sen sätter jag egenskaperna på bilden och den flyttas dit.

 

Sen ökar jag min integer med antalet sekunder som timern tickat och kollar om den når det tak jag har angett. Om det är fallet så stänger jag av timern och presenterar ett meddelande.

 

        private void timer1_Tick(object sender, EventArgs e)
       {
           int x = rnd.Next(0, panel1.Width - pictureBox1.Width);
           int y = rnd.Next(0, panel1.Height - pictureBox1.Height);

           pictureBox1.Top = x;
           pictureBox1.Left = y;
           totalTime += 2;
           if (totalTime == 20)
           {
               timer1.Enabled = false;
               MessageBox.Show("Tiden ute");
           }
       }

Länk till kommentar
Dela på andra webbplatser

Error 1 The name 'rnd' does not exist in the current context

 

 

 

Error 2 The name 'panel1' does not exist in the current context

 

samt samma med totaltime. Är väldigt yr nu.

 

Jag har alltså gjort en timer, har gått in i timern i koden och skrivet precis det du skrivet men får en massa error. Hur ska jag gå till väga?

 

Vad är det egentligen jag ska skriva i i timer1_tick voiden och vad ska jag börja koda i form1_load?

 

 

 

Länk till kommentar
Dela på andra webbplatser

I ditt formulär, lägg till en Panel och lägg in en PictureBox i panelen

 

Sen i koden, precis under public class Form1 lägg till

int totaltime = 0
Random rnd = new Random();

 

... Fan va knepigt att skriva sånt här i mobilen.

Länk till kommentar
Dela på andra webbplatser

public Form1()

{

InitializeComponent();

int totalTime = 0;

Random rnd = new Random();

}

 

har skrivet såhär men error återstår.. Förlåt att jag verkar som en jädrans nybörjare men det är jag. Uppskattar all hjälp jag kan få.

Länk till kommentar
Dela på andra webbplatser

Såja nu löste det sig.

Har nu satt intervallen på 2000 och bilden rör sig. Den rör sig dock ur panelen och i vissa positioner rör den sig så den inte är synlig. Sen hur får man den att randoma med mer utsträckning? Alltså så att den kan randoma ända upp i högerhörnet samt nästa random enda nera i andra hörnet. För just nu förflyttar den sig med liten marginal.

Länk till kommentar
Dela på andra webbplatser

Syftet med dessa två rader

            int x = rnd.Next(0, panel1.Width - pictureBox1.Width); 
           int y = rnd.Next(0, panel1.Height - pictureBox1.Height);

Är att din picturebox inte ska kunna gå utanför panelen. Om det fungerar bra eller ej vet jag inte, jag upplevde att det gick sådär när jag testade. Hur som helst destå mindre din panel är destå mindre kommer picturebox att flytta sig.

 

Anledningen till att jag valde att lägga picturebox i en panel är att om du vill ha saker runtomkring, typ där du visar poäng, knappar för nytt spel eller liknande, så kommer picturebox inte att hamna bakom dessa.

 

Så om du vill flytta picturebox en större bit. Gör panelen större.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...