> So I'm working on exactly the same type of game and this is what I implemented (I'm assuming you have a pipe sprite called "Pipe" and a bird sprite called "Bird"):
> 1. Keep a variable inside each of your pipe sprites called "Scored" and set it to false upon Create Object. This we will toggle once the pipe has a lower x-position than the bird (bird has "flown past", ie pipe has scrolled left past the bird). The reason for this is if we don't set Scored to true once the bird has flown past, it will continue to score that pipe.
> 2. Add first-level action "Pipe.X <= Bird.X" AND a condition "Pipe: NOT Is Scored" (Pipe is not Scored, ie. Scored is false) which will test ALL pipes for which Score is false's x-location against the bird's x-location and run a command if true. The command simply adds 1 to your Score variable ("Add 1 to Score") and sets the variable Scored to true FOR THAT PIPE (Pipe: Set Scored to true action). Again, this is to prevent the pipe from being scored on every click.
> There may be a more elegant way (you could investigate dwesley's invisible sprite method) which may be more processor-friendly, but this worked for me.
> Hope this helps!
I've tried this method and everything looked like it was correct but it didn't seem to work for me. I'm a complete novice so I'm still learning a lot of the ropes of construct 2. I will give this method a try again before trying the invisible sprite one. Maybe this time i'll get whatever I was missing before. Thanks for your help. Appreciate it.
Sorry, of course I meant Lancifer's invisible sprite method
As a newbie, try using the Chome Console plugin to log some debug data when your bird flies past a pipe (See for the download and read up on how to install plugins.) This data will show up in Chrome's Console tab (right-click on the html page and select Inspect from the drop-down list to show the console).