Witam, pracowałem nad zdarzeniami, a dokładnie nad przeszkodami, przeszkody działają mi, ale tak jak tego nie chce, a mianowicie jak rzepy...

fragment kodu programu;

  ///Kierowanie 1 gracz///
if (Dialog.dotyk(ob1,ob1_X, ob1_Y)){
    if (key[KEY_LEFT]){
       ob1_X--;    
       if (ob1_X<0 )
          ob1_X++;                 
       }
    if (key[KEY_RIGHT]){
       ob1_X++;         
        if (ob1_X>Xs-xk)
          ob1_X--;                 
       }    
    if (key[KEY_DOWN]){
       ob1_Y++;         
        if (ob1_Y>Ys-yk)
          ob1_Y--;                 
       }
    if (key[KEY_UP]){
       ob1_Y--;    
       if (ob1_Y<0)
          ob1_Y++;                 
       }
}

     ///////////////////  
     //Kierowanie 2 gracz//
if (Dialog.dotyk(ob2,ob2_X, ob2_Y)){
    if (key[KEY_A]){
       ob2_X--;    
       if (ob2_X<0)
          ob2_X++;                 
       }
    if (key[KEY_D]){
       ob2_X++;         
        if (ob2_X>Xs-xk)
          ob2_X--;                 
       }                   
    if (key[KEY_S]){
       ob2_Y++;         
        if (ob2_Y>Ys-yk)
          ob2_Y--;                 
       }  
    if (key[KEY_W]){
       ob2_Y--;    
       if (ob2_Y<0)
          ob2_Y++;                 
       }
}else {
	  if ((Dialog.dotyk(ob1,ob1_X, ob1_Y)== Dialog.dotyk(ob2,ob2_X, ob2_Y)))
	  rozrzucanie();
	  }	  
	  
    ////////////

To jest struktura przeszkody:

/*
  Name: Kropki	
  Copyright: 03-05-10
  Author: Kajetan B********k
  Date: 03-05-10 15:41
  Description: For Funny
*/



#include <allegro.h>
#include <string>
//intall_mouse();
struct Okno{
       int x,y; //POZYCJA
       int h,w; //WIELKOŚĆ
       int bg; //KOLOR
       BITMAP *Okienko; //Strefa
public:
 	   void rysuj(); //tworzenie 
       Okno(){x=100;y=100;w=100;h=100;bg=10;rysuj();}
       Okno(  int x1,int y1,int w1,int h1,int bg1);
       ~Okno(){delete [] Okienko;}
	   bool klick();
	   bool dotyk(BITMAP *OB, int Ox, int Oy);
       bool dotyk2(BITMAP *OB, int &Ox, int &Oy);
       //void usun(){destroy_bitmap(Okienko);}
};
void Okno::rysuj(){
	 Okienko = new BITMAP;
	 Okienko = create_bitmap(w,h);
	 clear_to_color(Okienko, bg);
  	 		 	 
}
Okno::Okno(  int x1,int y1,int w1,int h1,int bg1)
    {x=x1; y=y1; h=h1; w=w1; bg=bg1;rysuj();} 

bool Okno::klick() {
	 if ((mouse_x>x) && (mouse_x<w+x) && ((mouse_y>=y) && (mouse_y<=h+y)) && mouse_b==1){
	 	  clear_keybuf();
	 	   return true;
		   }
   else {
   		clear_to_color(Okienko, bg);
   		clear_keybuf();
   		return false;
		}
}
bool Okno::dotyk(BITMAP *O, int Ox, int Oy){
	 int xo=Ox;
	 int yo=Oy;
	 int wo=O->w;
	 int ho=O->h;
	 
	 if (xo+wo>x && xo<x+w)
	 	if (yo+ho>y && yo<y+h)
   		  return false;
	  
	 return true; ///Mozna przejsc
}
bool Okno::dotyk2(BITMAP *O, int &Ox, int &Oy){
	 int xo=Ox;
	 int yo=Oy;
	 int wo=O->w;
	 int ho=O->h;
	 
	 
 	if (yo<y+h){
  	    Oy--;      
		 return true;
		 }
	 
 	else if (yo+ho>y){
	 	 	Oy++;      
		 return true;
		 }
	
	else if (xo<x+w){
	 	  Ox--;      
		 return true;
		 }
	 
 	else if (xo+wo>x){
	 	  Ox++;      
		 return true;
		 }
	 else return false;
}
	 
	 

Jeśli moglibyście mi podsunąć jakiś pomysł, byłbym wdzięczny