博文

[转]小日本的GAME製作方式(2006-12-19 14:17:00)

摘要: 日本GAME製作方式
 
 
项目管理检讨 一、 现阶段问题点
(1) 组织架构
  公司与项目应有不同之架构
(2) 各职务定位
  各职务工作执掌与权责须划分更加清楚,特别是各部经理与总监。
(3) 项目经理与制作人的角色差异
  须更进一步划分工作执掌与权责
(4) 项目管理
  尚未进行,项目是否已算成立? 不清楚界定标准。 二、 附录 (参考资料)
(1) 何谓项目管理?
  针对特定目标的一系列规划、组织、人事、领导与控制等活动,其目的在有效运用组织内人力、物力、财力等资源,以达成组织目标。   规划:为设定项目发展目标、制定政策、研拟策略及实施步骤,及如何达成该目标的基本过程。   设定目标:目标必须写下来。必须让所有参与者都能清楚明白它的意思。   研拟策略的要点:
    1. 要把欲达到的结果,清楚地表达出来。
    2. 这些结果要合理可行。设立一个难以达到的目标,会使参与的人望而却步。
    3. 要把一系列的行动细节,详尽地陈述出来。
    4. 必须指定负责人,使整个计划能因此而推动、进行。
    5. 要提供合理的资源。
    6. 计划的每一个阶段,均须有时间表。
    7. 要设立工作表现的标准,以衡量所欲达到的成就。
  组织:为了达成共同的目的,规定各个角色的职务,并依据一定的权限与责任的分配,决定各职务间相互的关系。   管理人必须知道自己究竟负责哪些活动,哪些人需对自己负责、自己又该对哪些人负责。此外,管理人还必须清楚整个公司的结构、自己在公司的位置、可以使用哪些沟通管道等。这些都必须以达成部门和公司的目标为主,并且定下所要完成的效果,最后再用文字陈述出来。   许多公司都把组织营建在员工身上,而不是先决定所要的结果,然后再寻找适当的人选来占据那些职位。通常,小公司并没有真正的组织架构,都是把现有人员分配去做所有的工作。不用多久,又会有另一批人被聘来分摊各部门的工作。一个简陋架构的公司,有时也能维持好几年的时间,但这样很难继续维持成长。   为了让企业成功,整个组织必须以「结果为导向」作为建筑架构的基础。公司的目标需明确且实际可行,整个管理工作也必须以达成公......

阅读全文(3937) | 评论:0

转贴 我的第一个J2ME商业游戏源代码 (2006-11-07 14:49:00)

摘要:我写的个贴子被移动到了非技术区,刚才发不小心自己也发到了非技术区,现在重发,请管理员把非技术区我的帖子删除。
为了让更多同行得到原代码,再开贴,希望管理员不要移动,那样看到的人很少,不利大家共同进步。 我以前写的商业游戏原代码,原来在国外SP使用,似乎国内一直没有用,部分被重写(有些原公司不让公开),如果是BIG5版本的大家找个东东翻译一下好了,呵呵 需要的可以去下面网址看样本 ,更多代码到群里去下,这里只能发代码段不能发完整的带图片的整个程序 http://L999.68ab.com QQ群:8294554
龙王J2ME游戏制作,交流技术,共同进步   import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import java.util.*;
import com.nokia.mid.ui.*;
import com.nokia.mid.sound.*; public class csbw extends MIDlet
{
        private Display dp;
        //re1,rz2是人质,dr1,dr2是敌人,xue1:血条值,qiang1:枪,qiang2;枪(太久或雷,我忘了);yyx1也忘了
        Image ftu,rz1,rz2,dr1,dr2,xue1,qiang1,qiang2,yyx1;
        Timer tm,tm2;
        private Fca fca;
        //声音单音
        Sou......

阅读全文(4664) | 评论:1

J2ME 不断修改(2006-11-03 13:56:00)

摘要:import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;
import javax.microedition.rms.*;
import java.util.*;
import java.io.*; //简单的动画canvas by sword2008@程序之巢 //我原本的图片有张超过了200k,传不上来。 public class test2 extends MIDlet{
 private Display display;  public test2(){
 
 }  public void startApp(){
 new HCanvas(Display.getDisplay(this)).start();}  public void pauseApp(){ }  public void destroyApp(boolean unkowmn){ } class HCanvas extends GameCanvas implements Runnable{
 private Display display;
 private boolean sleeping;
 private long frameDelay;
 private int inputDelay;
 private Random rand;
 private Image background;
 private Image chickenHead;
 private Sprite chickenSprite;
 private Sprite[] carSprite=ne......

阅读全文(3006) | 评论:0

J2ME 声音播放程序(2006-11-02 22:45:00)

摘要:package sound; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.media.*; import java.io.*; public class SoundMIDlet extends MIDlet { private Player player = null; /** Constructor */ public SoundMIDlet() { try{ InputStream is = this.getClass().getResourceAsStream("/sword2008.wav"); player = Manager.createPlayer(is,"audio/x-wav"); }catch(IOException e){ System.out.println("1:" + e); }catch(MediaException e){ System.out.println("2:" + e); }catch(Exception e){ System.out.println("3:" + e); }
} /** Main method */ public void startApp() { if(player != null){ try{
player.start();
}catch(MediaException e){
System.out.println("4:" + e);
} }
} /** Handle pausing the MIDlet */ public void pauseApp() { } /** Handle destroying the MIDlet */ public void destroyApp(boolean unconditional) {
}
}......

阅读全文(3602) | 评论:0

j2me 书上完整游戏代码(2006-10-31 08:37:00)

摘要:import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;
import java.util.*;
import java.io.*; //简单的动画canvas by sword2008@程序之巢 //我原本的图片有张超过了200k,传不上来。 public class test2 extends MIDlet{
 private Display display;  public test2(){
 
 }  public void startApp(){
 new HCanvas(Display.getDisplay(this)).start();}  public void pauseApp(){ }  public void destroyApp(boolean unkowmn){ } class HCanvas extends GameCanvas implements Runnable{
 private Display display;
 private boolean sleeping;
 private long frameDelay;
 private int inputDelay;
 private Random rand;
 private Image background;
 private Image chickenHead;
 private Sprite chickenSprite;
 private Sprite[] carSprite=new Sprite[4];
 private int[] ......

阅读全文(3673) | 评论:1

J2ME HCanvas(2006-10-30 09:17:00)

摘要:import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.util.*;
import java.io.*; public class HCanvas extends GameCanvas implements Runnable{
 private Display display;
 private boolean sleeping;
 private long frameDelay;
 private int inputDelay;
 private Random rand;
 private Image background;
 private Image chickenHead;
 private Sprite chickenSprite;
 private Sprite[] carSprite=new Sprite[4];
 private int[] carYSpeed=new int[4];
 private boolean gameOver;
 private int numLives;
 private int score;
public HCanvas(Display d){
 super(true);
 display=d;
 
 frameDelay=33;
 inputDelay=0;
    }
///////////////////////////////////////////////////////////////////////////////////
public void start(){
 display.setCurrent(this);  rand=new Random();
 
 gameOv......

阅读全文(3354) | 评论:0

J2ME SpriteTest(2006-10-17 09:11:00)

摘要:import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.io.IOException; public class SpriteTest extends MIDlet implements CommandListener,Runnable{
 private static int SHIP_FRAME_WIDTH=16;
 private static int SHIP_FRAME_HEIGHT=16;  private MyCanvas myCanvas;
 private Command quit;
 private Image[] shipFrames;
 private boolean running;
 private int currentFrame; class MyCanvas extends Canvas{
 protected void paint(Graphics graphics){
 graphics.setColor(0);
 graphics.fillRect(0,0,getWidth(),getHeight());
 
 graphics.drawImage(shipFrames[currentFrame],getWidth()/2,getHeight ()/2,Graphics.HCENTER|Graphics.VCENTER);
              }
        }
 public SpriteTest()
{
 try{Image shipImage=Image.createImage("/005-Fighter05.png");
  ship......

阅读全文(3169) | 评论:0

J2ME Hello程序,实验一下吧(2006-10-16 08:48:00)

摘要:import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*; public class Hello extends javax.microedition.midlet.MIDlet implements CommandListener{
 protected Form form;
 protected Command quit;
  public Hello(){
 form=new Form("我的MIDlet");
 form.append("欢迎,MIDLET WORLD!");  form.setCommandListener(this);
 quit=new Command("离开",Command.SCREEN,1);
 form.addCommand(quit);
         }
 protected void startApp() throws MIDletStateChangeException
 { Display.getDisplay(this).setCurrent(form);
 }
 protected void pauseApp(){
     }
 protected void destroyApp(boolean unconditional) throws MIDletStateChangeException
 {
 }
  public void commandAction(Command command,Displayable displayable)
 {
  try{
   if(command==q......

阅读全文(3478) | 评论:0

J2ME伪高手先锋开讲—扫雷游戏的设计[专](2006-09-01 17:14:00)

摘要:J2ME伪高手先锋开讲——扫雷游戏的设计


首先我要装得像高手一样,来假装把系统稍微分析一下。

一般,按照java得开发模式,这种程序一般是分为三个模块来开发。

如下三个:

一个程序运作的主文件,也就是一个midlet的继承;

一个界面的表示类,也就是一个canvas的继承,界面上应该有些菜单,如new、exit 什么的,那就应该要 implements一个 commandListener消息监听类(大家可以把java的消息监听理解为一个线程,一直像倭寇那样对看得顺眼的东西虎视耽耽,当然这里指的是他所能触及到的消息,当收到消息的时候,会调用一个抽象函数public void commandAction(Command c, Displayable d),而这个抽象函数使得我们可以通过对他的实现来处理收到的消息,即消息响应)

最后一个当然就是与界面无关的逻辑单元了,在这里我们定义整个游戏的逻辑,做到逻辑与界面分开。这是我学java的最大收获,呵呵。

首先正式开始第一讲 <扫雷游戏的逻辑>

我的设想是,扫雷的地图一般是一个矩形,因为,圆形屏幕的手机看起来蛮变态的,没有必要迁就他,所以,我用一个a*b的二维数组就完全可以表示整个地图。

有了地图以后地图里面的类容自然就有一部分是表示地雷啦,既然这样,那不如就这样<废话来的,小朋友不要学>

/**

* 20 标志该位置为地雷

* <=10的数字表示未翻开的方块及周围的地雷数目

* >=10的数字表示已翻开的方块及周围的地雷数目

* */

表示方法就出来了,逻辑也明朗起来了。

我要将某个块翻开,只要将他加上10就可以了。

Java编程第一步,当然是先要class啊

package games;

import java.util.Random;

import java.lang.Math;

class gamelogic {

/**表示一个1......

阅读全文(2347) | 评论:0

J2ME简单的格子(2006-09-05 15:00:00)

摘要:
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*; //made by sword2008·程序之巢 //http://blog.programfan.com/blog.asp?author=qq14923349
//游戏第一课  画格子
public class Gofirst1 extends MIDlet

 public Gofirst1(){
 
           }
 public void startApp(){
  Display.getDisplay(this).setCurrent(new First1());
         }
 public void pauseApp(){}
 public void destroyApp(boolean unkown){}
   
} class First1 extends Canvas
{  private int color;
 private int startX=getWidth()/4-40;//起点坐标和终点坐标非常重要,格子剩下的是分成等分
 private int startY=getHeight()/4-40;    public void paint(Graphics g){
  color=g.getColor();
 g.setColor(255,255,255);
 g.fillRect(0,0,getWidth(),getHeight());
 g.setColor(255,0,0);
 g.drawRect......

阅读全文(3592) | 评论:1