Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Superman extends Osoba
- {
- //\CC== CONSTANT CLASS (STATIC) ATTRIBUTES (FIELDS) ============================
- /** Poměr velikosti znaku k tělu */
- private static final double POMER_ZNAK_TELO = 3.0/5.0;
- //\CV== VARIABLE CLASS (STATIC) ATTRIBUTES (FIELDS) ============================
- //##############################################################################
- //\CI== STATIC INITIALIZER (CLASS CONSTRUCTOR) =================================
- //\CG== CLASS (STATIC) GETTERS AND SETTERS =====================================
- //\CM== OTHER NON-PRIVATE CLASS (STATIC) METHODS ===============================
- //\CP== PRIVATE AND AUXILIARY CLASS (STATIC) METHODS ===========================
- /** Kresli prsni znak Supermenovi
- *
- * @param kreslitko kreslitko urceni, kam se bude kreslit
- *
- */
- @Override
- public void nakresli(Kreslitko kreslitko) {
- SP.nekresli(); {
- super.nakresli(kreslitko);
- znak.nakresli(kreslitko);
- }
- SP.vratKresli();
- }
- /** Nastavení pozice */
- @Override
- public void setPozice(int x, int y){
- super.setPozice(x,y);
- znak.setPozice(telo.getX() + this.posunZnaku, telo.getY() + this.posunZnaku);
- }
- //##############################################################################
- //\IC== CONSTANT INSTANCE ATTRIBUTES (FIELDS) ==================================
- /** Znak na hrudi Osoby */
- private final Trojuhelnik znak;
- /** Posun znaku **/
- private final int posunZnaku;
- //\IV== VARIABLE INSTANCE ATTRIBUTES (FIELDS) ==================================
- //##############################################################################
- //\II== CONSTRUCTORS AND FACTORY METHODS =======================================
- /************************************
- * vytvoří instanci libovolného rozměru na zadané pozici
- * tělo je vždy modré, standartních rozměrů Osoby
- * znak je vždy červený orientovaný vrcholem dolů
- * znak je v poměru k tělu a je odsazen o {@code posunZnaku}
- * vůči X i Y souřadnici těla
- *
- * @param pozice pozice, na kterou se superman vykreslí
- * @param velikostHlavy velikost hlavy, podle které se vytvoří poměrově osoba
- */
- public Superman(Pozice pozice, int velikostHlavy) {
- super(pozice, velikostHlavy, Barva.MODRA);
- int sirkaZnaku = (int) (telo.getSirka() * POMER_ZNAK_TELO);
- this.posunZnaku = (telo.getSirka() - sirkaZnaku) / 2;
- Pozice pZnak = new Pozice(telo.getX() + posunZnaku,
- telo.getY() + posunZnaku);
- Rozmer pRozmer = new Rozmer(sirkaZnaku, sirkaZnaku);
- this.znak = new Trojuhelnik(pZnak,pRozmer, Barva.CERVENA, Smer8.JIH);
- }
- /***********************************************
- * vytvoří instanci standartního rozměru na zadané pozici
- */
- public Superman(Pozice pozice) {
- this(pozice, IMPL_VELIKOST_HLAVY);
- }
- /*********************************
- * Konstruktor vytvori Supermena v levem hornim uhlu
- */
- public Superman() {
- this(new Pozice(0,0));
- }
- //\IA== ABSTRACT METHODS =======================================================
- //\IG== INSTANCE GETTERS AND SETTERS ===========================================
- //\IM== OTHER NON-PRIVATE INSTANCE METHODS =====================================
- /** Metoda, která vrací znak */
- public Trojuhelnik getZnak() {
- return znak;
- }
- //\IP== PRIVATE AND AUXILIARY INSTANCE METHODS =================================
- //##############################################################################
- //\NT== NESTED DATA TYPES ======================================================
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement