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