001 package com.croftsoft.apps.road; 002 003 import java.applet.*; 004 import java.awt.*; 005 import java.awt.event.*; 006 import java.awt.geom.*; 007 import java.io.*; 008 import java.net.URL; 009 import java.util.*; 010 import javax.swing.*; 011 import javax.swing.event.*; 012 013 import com.croftsoft.core.animation.clock.Timekeeper; 014 import com.croftsoft.core.animation.sprite.IconSprite; 015 016 import com.croftsoft.apps.road.model.Car; 017 018 /********************************************************************* 019 * Roadrunner enemy Sprite. 020 * 021 * @version 022 * 2003-11-09 023 * @since 024 * 2003-09-10 025 * @author 026 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 027 *********************************************************************/ 028 029 public final class EnemySprite 030 extends IconSprite 031 implements Constants 032 ////////////////////////////////////////////////////////////////////// 033 ////////////////////////////////////////////////////////////////////// 034 { 035 036 private final Car car; 037 038 private final Timekeeper timekeeper; 039 040 private final Random random; 041 042 ////////////////////////////////////////////////////////////////////// 043 ////////////////////////////////////////////////////////////////////// 044 045 public EnemySprite ( 046 Icon enemyIcon, 047 Car car, 048 Timekeeper timekeeper, 049 Random random ) 050 ////////////////////////////////////////////////////////////////////// 051 { 052 super ( enemyIcon ); 053 054 this.car = car; 055 056 this.timekeeper = timekeeper; 057 058 this.random = random; 059 } 060 061 ////////////////////////////////////////////////////////////////////// 062 ////////////////////////////////////////////////////////////////////// 063 064 public void update ( JComponent component ) 065 ////////////////////////////////////////////////////////////////////// 066 { 067 car.setDestinationPoint ( 068 new Point ( 069 random.nextInt ( component.getBounds ( ).width ), 070 random.nextInt ( component.getBounds ( ).height ) ) ); 071 072 double timeDelta = timekeeper.getTimeDelta ( ); 073 074 car.update ( timeDelta ); 075 076 x = car.getCenterX ( ); 077 078 y = car.getCenterY ( ); 079 } 080 081 ////////////////////////////////////////////////////////////////////// 082 ////////////////////////////////////////////////////////////////////// 083 }