2010-12-11 3 views
0

Je développe une application de capture simple dans Silverlight (dans le mélange 4). Savez-vous comment résoudre simplement la collision d'objet de tomber des objets du haut vers le bas dans le rectangle blanc? Image - http://img94.imageshack.us/img94/8200/svlk.jpgSilverlight - objets de collision de jeux

Merci

code actuel:

public partial class MainPage : UserControl 
{ 
    int skore=0; 

    public MainPage() 
    { 
     InitializeComponent(); 
     chytac.Visibility=Visibility.Collapsed; 
    } 

    private void UserControl_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) 
    { 
     String k=e.Key.ToString(); 
     klavesa.Content=k; 
     if(e.Key.ToString().Equals("Left")){ 
      double x=Canvas.GetLeft(chytac); 
      x=x-20; 
      if(x>0){ 
       Canvas.SetLeft(chytac,x); 
      } 

     } 
     if(e.Key.ToString().Equals("Right")){ 
      double x=Canvas.GetLeft(chytac); 
      x=x+20; 
      if(x<650){ 
       Canvas.SetLeft(chytac,x); 
      } 

     } 
    } 

    private void start_Click(object sender, System.Windows.RoutedEventArgs e) 
    { 
     chytac.Visibility=Visibility.Visible; 
     start.Visibility=Visibility.Collapsed; 
    } 

    private void random_Click(object sender, System.Windows.RoutedEventArgs e) 
    { 
     Random random = new Random(); 
     //pocitadlo++; 
     //score.Content=pocitadlo.ToString(); 
     telefon novy = new telefon(); 
     LayoutRoot.Children.Add(novy); 
     Canvas.SetTop(novy, 0); 
     Canvas.SetLeft(novy, random.Next(0,650)); 
     Canvas.SetZIndex(novy, -50); 

     bomba bomba=new bomba(); 
     LayoutRoot.Children.Add(bomba); 
     Canvas.SetTop(bomba, 0); 
     Canvas.SetLeft(bomba, random.Next(0,650)); 
     Canvas.SetZIndex(bomba, -50); 
    } 
} 
+0

Quel code avez-vous actuellement, le cas échéant? – ChrisF

+0

J'ai ajouté mon code - telefon et bomba sont des objets générés après avoir cliqué sur le bouton aléatoire, chytac est rectange pour cathéditer les objets sur le fond – Waypoint

+0

Je déplacerais la déclaration et l'initialisation de 'random' hors de la méthode du clic. Sinon, vous obtiendrez des résultats non aléatoires si l'utilisateur clique fréquemment. – ChrisF

Répondre

1

Si vous pouvez représenter votre objet comme un rectangle (ou un ensemble de rectangles), vous pouvez simplement vérifier si rectange (s) se chevauchent avec le blanc rectangle. Les formes complexes peuvent nécessiter des algorithmes plus avancés. Il existe un certain nombre de bibliothèques de sprites disponibles telles que Silversprite

Questions connexes