快速业务通道

Java:在二维动画中使用基于图像的路径 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
Person 实体。

清单 9. 创建相同类型的实体

/** initialize paths */ protected static void initLoop (BuildingManager manager, ImageIcon icon,                  int[] locs, String[] names,                 int [] starts, int[] appear, int[][][] stops) {   LinkedList startPts = (LinkedList)manager.              getAvailableStartingPoints();   // for all specified locations - create a Person   for (int i = 0; i < locs.length; i++) {      JLabel label = new JLabel(names[i], icon, JLabel.CENTER);      label.setFont(new Font(label.getFont().getName(),                  label.getFont().getStyle(), 20));     Person person = new Person(manager, label,                    (Point2D)startPts.get(                    Math.min(startPts.size() - 1, locs[i])),                    starts[i]);     person.setAppearTick(appear[i]);      // defines stop locations for each Person     for (int j = 0; j < stops[i].length; j++) {       person.addStop(stops [i][j][0], stops[i][j][1]);     }     manager.addEntity (person);   } }

Java:在二维动画中使用基于图像的路径(12)

时间:2011-08-31 IBM

清单 10 用清单 9 中的 initLoop 代码定义了一组 Person 实体。这段代码 使用几个平行的数组(根据 locs 数组的长度)提供有关要创建的对象的信息。 locs 数组为用控制路径提供的一组定义好的开始位置提供了索引。 starts 值指 定在什么时间让 Person 开始移动。 appear 值定义了什么时候应当让 Person 变为可见(通常是在开始移动之前)。 stops 值指定每个 Person 可以有的停止 点(可能有多个)。

尽管下面显示的代码是以手工键入值,但是也可以通过增加表示位置实体状态 的新颜色来从控制路径获得大多数这些输入值。这种增强可以简化这些值的输入 ,并减少控制路径改变时出错的可能性。

清单 10. 创建所有 Person 实体

/** Make some demo people */ static public void createPeople (BuildingManager manager,                 ImageIcon employIcon,                 ImageIcon fireIcon,                 ImageIcon disabledIcon) {   // Main character - ALEX   int locs[] = new int[] {42};   String names[] = new String[] {"Alex"};   int starts[] = new int[] { 300 };   int appear[] = new int[] { 0 };   int stops[][][] = new int[][][] {{}};   initLoop(manager, employIcon, locs, names, starts, appear, stops);   // Some disabled people   locs = new int[] { 39, 45 };   names = new String[] { "Karen", "Mike" };   starts = new int[] { 0, 0};   appear = new int[] { 0, 0 };   stops = new int[][][] {{{1, 164}, {560, 20}},                {{1, 141}, {460, 30}}};   initLoop(manager, disabledIcon, locs, names, starts, appear, stops);   // Some Assisters   locs = new int[] {44, 49, 37, 46};   names = new String[] { "Tom", "Joe", "Cathy", "Larry" };   starts = new int[] { 0, 0, 0, 0};   appear = new int[] { 0, 0, 0, 0 };   stops = new

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号