Zac Efron was pissed off with his character in "The Lucky One because he is so perfect.

The 24-year-old plays war hero Logan Thibault -- who along with being romantic, good with kids, and a former marine can also dance and play the piano -- and Zac admitted he was annoyed that he can't measure up in real life.

He told "Extra": "I was pissed at myself when was playing him, my character is the coolest dude and on top of that he's a hero. But it was the best part in the world to play."

Efron and co-star Taylor Schilling have some steamy love scenes in the movie and he says they got through them by maintaining an "undercurrent of laughter."

Efron said: "We maintained an 'undercurrent of laughter' and had a good laugh."

Schilling added: "I didn't find it weird to film, Zac's a really easy guy to work with and we had a lot of fun, it was a comfortable, safe situation."

Efron shows off an impressive physique in the film thanks to a strict training regime which saw him put on 17 pounds.

He explained: "I did a lot of training, it was a we very strict training regiment with a Navy seal, trained for five months, I put on about 17 pounds but I don't know if I could do it again."