Nu moet je iets soortgelijks doen bij de tuinman OF de sinaasappel. Volgens mij kan het allebei, maar ik kies voor de tuinman,
Eerst maar eens programmeren dat de tuinman een punt krijgt als hij een sinaasappel raakt:
Bij de public void act vd tuinman schrijf ik eerst deze methodeaanroep erbij:
Code: Selecteer alles
tuinmanRaaktSinaasappel();
Code: Selecteer alles
public void tuinmanRaaktSinaasappel()
{
if (isTouching (Orange.class))
{
addPoints(1);
removeTouching(Orange.class);
}
}
Nu moet de tuinman een aantal punten krijgen gelijk aan de grootte vd sinaasappel.
Even zoeken bij de code vd sinaasappel en je ziet dit:
Code: Selecteer alles
public int getSize ()
{
return size;
}
Je hebt geleerd hoe je een methode aanroept van een ander object. In dit geval moet het iets worden zoals:
Als de Gardener de Orange raakt…
{
Welke Orange raakt hij dan? Haal de gegevens van precies DIE Orange op.
Haal de grootte van die orange op.
Tel de grootte op bij het puntenaantal van de Gardener
}
In code:
Code: Selecteer alles
public void tuinmanRaaktSinaasappel()
{
if (isTouching (Orange.class))
{
Orange sinaasappel = (Orange)getOneIntersectingObject(Orange.class);
points = points + sinaasappel.getSize();
World world = getWorld();
removeTouching(Orange.class);
}
}
(Orange)getOneIntersectingObject(Orange.class);
En niet:
getOneIntersectingObject(Orange.class);
Want dan krijg je de foutmelding zoals bij Opdracht 6.7 aangegeven.