00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 package org.classroomgaming.cgp;
00021
00022 import java.net.MalformedURLException;
00023 import java.util.logging.Level;
00024 import java.util.logging.Logger;
00025 import org.classroomgaming.cgp.*;
00026 import java.applet.*;
00027 import java.awt.Image;
00028 import java.awt.Toolkit;
00029 import java.beans.PropertyChangeEvent;
00030 import java.util.StringTokenizer;
00031
00037 public class SampleGameMode extends GameWorld implements Configurator, ImageLoader {
00038
00039 private MouseModule mouseMod;
00040 private KeyboardModule keyboardMod;
00041 private MapModule mapMod;
00042 private ShopModule shopMod;
00043 private DialogModule dialogMod;
00044 private DebugModule debugMod;
00045 private FrameTimer frameTimer;
00046 private static final int gridHeight = 32;
00047 private static final int gridWidth = 32;
00048 SampleGameMode gameMode;
00049 private static String defaults[][] = {
00050 {"nocopies", "This Applet By Ryan Ruff, Used Only With Permission: saxist4lif@geocities.com"},
00051 {"separator", "|"},
00052 {"itemseparator", "*"},
00053 {"shop0", "19 1|Video Games*CDs*Letter*Red Slippers|So you like video games?^don't miss this*Thousands To Choose From*E-Mail ME with this*These take you home!|http://www.squarela.com*http://www.cdrom.com*mailto:saxist4lif@geocities.com*java.html"},
00054 {"link0", "1 1|index.html"},
00055 {"you", "you1.gif:you2.gif:you3.gif:you4.gif"},
00056 {"bg", "bg.jpg"},
00057 {"newline", "^"},
00058 {"sprite0", "1 1|x.gif"},
00059 {"textEvent0", "11 6|How To Use This Applet:^-Use Space Bar To Scroll^^Navigating^^'w', '8' : Move Up^'s', '2' : Move Down^'a', '4' : Move Left^'d', '6' : Move Right^<ENTER> : Return to starting position. In this case; here.^'n', 'p', 'b': Used in shop^^Walking on to spaces on the board will sometimes trigger events:^-hyperlink to other pages^-text such as this^-'Stores' carry an inventory of hyperlinks^-talking to people^^What is there to do?^^Well, look for the red X's,^each one of those is set up as an event.^Find me and talk to me.^Don't forget to check out the General Store!"},
00060 {"map", "gfggggggfgggggggggfgf|gfggfgs gggg|fgfggg gfgf|ggfgfgfggggggggggggff|ggfggggggggfggfggfggg|ggfggfgggfgggfgggggfg|gggfh ggggfgggg|gggg fggfgggfg|gggfggggfggggfgfggffg|ggfggfgggggffgggfgggf"},
00061 {"lastlink", "0"},
00062 {"addImage0", "g|pgrass.gif"},
00063 {"addImage1", "f|flowers.gif"},
00064 {"addImage2", "s|gs.jpg"},
00065 {"addImage3", "h|hm.jpg"},
00066 {"start", "11 6"},
00067 {"person0", "10 10|Hey there people! (Reminder: space scrolls)^My name is Ryan, and this is my applet.^This applet is set up to show all the feature of it^and viewing the source of this page will^show you how simple it is to design your own^realms. This applet can navigate whole sites,^archives, or just be set up for fun as a site map.^If you would like to use this just email me at^saxist4lif@geocities.com and for a small^'contribution' I'll remove the green box in^the upper left corner. I can also customize it^if you have specific needs.|p1down.gif:p1up.gif:p1left.gif:p1right.gif"},};
00068
00069 public String getParameter(String name) {
00070
00071 for (int i = 0; i < defaults.length; ++i) {
00072 if (defaults[i][0].toLowerCase().equals(name.toLowerCase())) {
00073 return defaults[i][1];
00074
00075 }
00076 }
00077 return null;
00078 }
00079
00080 public int getHeight() {
00081 return 480;
00082 }
00083
00084 public int getWidth() {
00085 return 640;
00086 }
00087
00088 public ImageLoader getImageLoader() {
00089 return this;
00090 }
00091
00092 public Image loadImage(String name) {
00093 String base = "resources/";
00094 java.net.URL imageURL = getClass().getResource(base.concat(name));
00095 Image i = Toolkit.getDefaultToolkit().getImage(imageURL);
00096 return i;
00097 }
00098
00099
00100 public SampleGameMode() {
00101 parent = null;
00102
00103 addModules();
00104
00105 }
00106
00107 public SampleGameMode(GameModule g) {
00108 parent = g;
00109 addModules();
00110 }
00111
00112 public void addModules() {
00113 mouseMod = new MouseModule(this);
00114 keyboardMod = new KeyboardModule(this);
00115 mapMod = new MapModule(this);
00116 shopMod = new ShopModule(this);
00117 dialogMod = new DialogModule(this);
00118 debugMod = new DebugModule(this);
00119 frameTimer = new FrameTimer(this);
00120 addModule("keyboard", keyboardMod);
00121 addModule("mouse", mouseMod);
00122 addModule("shop", shopMod);
00123 addModule("dialog", dialogMod);
00124 addModule("map", mapMod);
00125 addModule("debug", debugMod);
00126 addModule(FrameTimer.CGP_CLASS_ID, frameTimer);
00127 mouseMod.addPropertyChangeListener(mapMod);
00128 frameTimer.addPropertyChangeListener(this);
00129 }
00130
00131 public void init(Configurator c) {
00132 super.init(c);
00133 addPlayerCharacter(c);
00134 addTextEvents(c);
00135 addShops(c);
00136 addLinks(c);
00137
00138 addSprites(c);
00139 addPeople(c);
00140 mapMod.setEnabled(true);
00141 dialogMod.setEnabled(false);
00142 shopMod.setEnabled(false);
00143 debugMod.setEnabled(true);
00144 mouseMod.setEnabled(true);
00145
00146 }
00147
00148 String[] parse(String string, String string2) {
00149 StringTokenizer stringtokenizer = new StringTokenizer(string, string2);
00150 String string4[] = new String[stringtokenizer.countTokens()];
00151 int i = 0;
00152 for (; i < string4.length;) {
00153 string4[i] = stringtokenizer.nextToken();
00154 i++;
00155 }
00156 return (string4);
00157 }
00158
00159 int[] parseInt(String string, String string2) {
00160 StringTokenizer stringtokenizer = new StringTokenizer(string, string2);
00161 int iArr[] = new int[stringtokenizer.countTokens()];
00162 int j = 0;
00163 for (; j < iArr.length;) {
00164 iArr[j] = Integer.parseInt(stringtokenizer.nextToken());
00165 j++;
00166 }
00167 return (iArr);
00168 }
00169
00170 private void addPlayerCharacter(Configurator c) {
00171 String stringArr[] = parse(c.getParameter("you"), ":");
00172 int lArr[] = parseInt(c.getParameter("start"), " ");
00173 SamplePlayerCharacterSpawner thePlayer = new SamplePlayerCharacterSpawner(stringArr[0], stringArr[1], stringArr[2], stringArr[3]);
00174 createObject("Player", thePlayer, (float) lArr[0], (float) lArr[1]);
00175 Entity obj = getObjectByName("Player");
00176 Camera cam = CameraManager.getInstance().getActiveCamera();
00177 cam.setX(lArr[0]);
00178 cam.setY(lArr[1]);
00179 }
00180
00181 private void addTextEvents(Configurator c) {
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195 }
00196
00197 private void addShops(Configurator c) {
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215 }
00216
00217 private void addLinks(Configurator c) {
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238 }
00239
00240 private void addSprite(int spriteID, String img, int x, int y) {
00241 SpriteSpawner t = new SpriteSpawner(img, x, y);
00242 createObject("Sprite" + spriteID, t, (float) x, (float) y);
00243 }
00244
00245 private void addSprites(Configurator c) {
00246 String baseText = "sprite";
00247 int lArr[];
00248 String stringArr4[];
00249 int i = 0;
00250 while (c.getParameter(baseText.concat(String.valueOf(i))) != null) {
00251 stringArr4 = parse(c.getParameter(baseText.concat(String.valueOf(i))), c.getParameter("separator"));
00252 lArr = parseInt(stringArr4[0], " ");
00253 addSprite(i, stringArr4[1], lArr[0], lArr[1]);
00254
00255 ++i;
00256 }
00257
00258 }
00259
00260 private void addPerson(int personID, String imageName[], int x, int y, String text, String newline) {
00261 NonPlayerCharacterSpawner npc = new NonPlayerCharacterSpawner(imageName[0], imageName[1], imageName[2], imageName[3]);
00262 createObject("Person" + personID, npc, (float) x, (float) y);
00263
00264 }
00265
00266 private void addPeople(Configurator c) {
00267 String baseText = "person";
00268 int lArr[];
00269 String stringArr4[];
00270 String imageName[];
00271 int i = 0;
00272 while (c.getParameter(baseText.concat(String.valueOf(i))) != null) {
00273
00274 stringArr4 = parse(c.getParameter(baseText.concat(String.valueOf(i))), c.getParameter("separator"));
00275 imageName = parse(stringArr4[2], ":");
00276 lArr = parseInt(stringArr4[0], " ");
00277 addPerson(i, imageName, lArr[0], lArr[1], stringArr4[1], c.getParameter("newline"));
00278
00279 ++i;
00280 }
00281
00282 }
00283
00284 @Override
00285 public void propertyChange(PropertyChangeEvent e) {
00286 if (e.getPropertyName().equals(FrameTimer.PROP_FRAME)) {
00287 float dt = (float)FrameTimer.sleepTime/1000;
00288 ponder(dt);
00289
00290 }
00291 }
00292 }