Gå til innhold

C#: Sjekke om en bakgrunn er lik et bestemt bilde


Anbefalte innlegg

Muligens litt klønete emnetittel men er ikke særlig god på å skrive gode titler. Holder på med et lite spill som startet som et plattformspill og som utarter seg til å bli noe helt obskurt i stedet.

Prøver å få til at samme tast bytter mellom to forskjellige bakgrunner, men finner ikke ut hvordan jeg kan gjøre dette. Dette er den koden jeg prøvde meg med:

 

static void OnTick(object sender, TickEventArgs e)
   {
           if (Keyboard.IsKeyPressed(Key.Q)) BackgroundSwitch();
   }

static void BackgroundSwitch()
   {
       if (Background == ("forest1.jpg")) Background = new Surface("forest2.jpg");
           else if (Background == ("forest2.jpg")) Background = new Surface("forest1.jpg");
   }

 

men får feilmelding om at

Error 1 Operator '==' cannot be applied to operands of type 'SdlDotNet.Surface' and 'string'

 

Så jeg har åpenbart gjort noe helt galt her men skjønner ikke helt hva eller hvordan jeg skal gjøre det riktig. Er ganske ny i C# sånn at dere vet det, har utelukkende holdt på med C og C++ fra før av.

Lenke til kommentar
Videoannonse
Annonse

Lag heller en klasse variabel hvor du lagrer hvilket bilde som er aktivt.

 

Hvis du skal sjekke om bildet er likt slik du gjør nå må du sjekke hver eneste pixel for å se om de er like hver eneste pixel på bildet du sjekker mot. Det er ikke så veldig lurt...

Lenke til kommentar

Som jorn79 sier, så må du sjekke ved referanse, ikke filnavn.

Nå du laster bildet, må du beholde det et annet sted en bare den spriten du laster, f.eks. en array som inneholder en struktur som beholder filnavnet.

 

SdlSurface forrest = LoadSurface("forrest1.jpg");

Player.Sprite = forrest;
if(Player.Sprite == forrest1)
 throw new InvalidSpriteException("Player cannot be forrest!");

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...