[PROJET] Jeu d'avions (question heritage/polymorph)
Dans le petit jeu que je developpe, j'essaie de mettre en oeuvre l'héritage et le polymorphisme.
J'ai créé une classe mere "Lesplateformes" et 1 classes fille "Bonus"
Mais le parametre supplémentaire donc qui surchage la méthode en l'occurence le label lbltest n'est pas pris en compte... enfin il ne se modifie pas. je ne vois pas ce qui manque...?
Voici mes appels de la classe mere et de la classe fille:
voici mon implémentation de ces 2 classes:
J'ai créé une classe mere "Lesplateformes" et 1 classes fille "Bonus"
Mais le parametre supplémentaire donc qui surchage la méthode en l'occurence le label lbltest n'est pas pris en compte... enfin il ne se modifie pas. je ne vois pas ce qui manque...?
Voici mes appels de la classe mere et de la classe fille:
<br /> Lesplateformes *plate = [[Lesplateformes alloc] init];<br /> [plate initwithBonus:platform3 difference:difference]; // la 3 avance moins vite<br /> [plate collisionplateforme:platform3 <br /> avecleperso:ball <br /> changelimageduperso:@"rainbyrose.png"];<br /> <br /> Bonus *unbonus = [[Bonus alloc] init];<br /> [unbonus collisionplateforme:platform5 <br /> avecleperso:ball <br /> changelimageduperso:@"rainbyvert.png"<br /> indiqueparlabel:lbltest];<br />
voici mon implémentation de ces 2 classes:
<br />///////////////////////////////////////////////////<br />@implementation Lesplateformes<br /><br />- (void)collisionplateforme: (UIImageView *)uneplateforme<br /> avecleperso: (UIImageView *)ball<br /> changelimageduperso: (NSString *)imageperso<br />{<br /> // Si la plateforme est affichée et intercepte le personnage<br /> if (CGRectIntersectsRect(ball.frame, uneplateforme.frame) && uneplateforme.hidden == 0 )<br /> {<br /> ball.image = [UIImage imageNamed:(imageperso)];<br /> }<br />}<br />@end<br />///////////////////////////////////////////////////<br />///////////////////////////////////////////////////<br />@implementation Bonus <br /><br />- (void)collisionplateforme: (UIImageView *)uneplateforme<br /> avecleperso: (UIImageView *)ball<br /> changelimageduperso: (NSString *)imageperso<br /> indiqueparlabel: (UILabel *)lbltest<br />{<br /> [self collisionplateforme:uneplateforme avecleperso:ball changelimageduperso:(imageperso)];<br /> lbltest.text =@"VERT";<br />}<br />@end<br />///////////////////////////////////////////////////<br />
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si tu avais une classe mère PlateForme, tu n'aurais pas besoin de passer à chaque fonction un pointeur uneplateforme.
Je ne comprend pas trop ce que tu appelles polymorphisme. Pour moi ce serait créer une classe de base Sprite, puis s'en servir pour créer des classes filles SpritePerso, SpritePlateForme, SpriteAvion.
Donc est-ce que la ca te parait etre correcte pour de l'objective-c ?