棋牌游戏源码手机游戏
① 哪里可以下 载比较完整的棋牌游戏源码
网络搜索 乐维护 ,有很多,这些网络都能找到。
② 棋牌app有了源码以后怎么破解
摘要 如果你玩的是单机棋牌,那很好破解。
③ 网狐6602棋牌游戏源码哪个口碑比较好
殉奇辖 我朋友玩的那个地方信誉就很好。叫【白金会棋牌】,游戏多,只要玩熟了,加上运气技巧,赢钱那是必须的。希望对你有帮助
④ 谁能给我一个手机游戏的源代码啊
这个地址也有,不过直接给你吧,这样比较好
先给你看看主要的类吧
package Game;
import DreamBubbleMidlet;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.microedition.lci.Graphics;
import javax.microedition.lci.Image;
import javax.microedition.lci.game.GameCanvas;
import javax.microedition.lci.game.LayerManager;
import javax.microedition.lci.game.Sprite;
public class Game extends GameCanvas implements Runnable {
protected DreamBubbleMidlet dreamBubbleMidlet;
protected Graphics g;
protected Image loadingImage;
protected Image pauseImage;
protected Image cursorImage;
protected Image jackStateImage;
protected Image johnStateImage;
protected Image numberImage;
protected Sprite cursor;
protected Sprite number;
protected LayerManager cursorManager;
protected LayerManager numberManager;
protected Hashtable bombTable;
protected Map map;
protected LayerManager gameLayerManager;
protected Role player;
protected Sprite playerGhost;
protected int screenWidth;
protected int screenHeight;
protected int delay = 50;
protected int[][] bornPlace;
protected int chooseIndex;
protected int stageIndex = 1;
protected int gameClock;
protected int loadPercent;
protected boolean isPause;
protected boolean isEnd;
protected boolean isPlaying;
protected boolean isLoading;
protected Thread mainThread;
public Game(DreamBubbleMidlet dreamBubbleMidlet) {
super(false);
this.setFullScreenMode(true);
this.dreamBubbleMidlet = dreamBubbleMidlet;
this.screenWidth = this.getWidth();
this.screenHeight = this.getHeight();
try {
this.loadingImage = Image.createImage("/Game/Loading.png");
this.pauseImage = Image.createImage("/Game/Pause.png");
this.cursorImage = Image.createImage("/Game/Cursor.png");
this.jackStateImage = Image.createImage("/State/JackState.png");
this.johnStateImage = Image.createImage("/State/JohnState.png");
this.numberImage = Image.createImage("/State/Number.png");
} catch (IOException e) {
e.printStackTrace();
}
this.g = this.getGraphics();
}
public void loadStage(int stage) {
this.isEnd = false;
this.isPause = false;
this.isPlaying = false;
this.gameLayerManager = new LayerManager();
this.cursorManager = new LayerManager();
this.numberManager = new LayerManager();
this.bombTable = new Hashtable();
this.cursor = new Sprite(this.cursorImage, 32, 32);
this.number = new Sprite(this.numberImage, 12, 10);
this.loadPercent = 20;
sleep();
loadMap(stage);
this.loadPercent = 40;
sleep();
loadPlayer();
this.loadPercent = 60;
sleep();
this.gameLayerManager.append(map.getBombLayer());
this.gameLayerManager.append(map.getBuildLayer());
this.gameLayerManager.append(map.getToolLayer());
this.gameLayerManager.append(map.getFloorLayer());
this.gameLayerManager.setViewWindow(0, -5, screenWidth,
Global.MAP_HEIGHT + 5);
this.cursorManager.append(cursor);
this.numberManager.append(number);
this.loadPercent = 80;
sleep();
this.loadPercent = 100;
sleep();
isPlaying = true;
}
public void run() {
while (!isEnd) {
long beginTime = System.currentTimeMillis();
this.drawScreen();
long endTime = System.currentTimeMillis();
if (endTime - beginTime < this.delay) {
try {
Thread.sleep(this.delay - (endTime - beginTime));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public void loadMap(int stage) {
switch (stage) {
case 0:
this.map = new Map(Global.MAP_BLOCK);
this.bornPlace = Global.MAP_BLOCK_BORNPLACE;
break;
case 1:
this.map = new Map(Global.MAP_FACTORY);
this.bornPlace = Global.MAP_FACTORY_BORNPLACE;
break;
case 2:
this.map = new Map(Global.MAP_FOREST);
this.bornPlace = Global.MAP_FOREST_BORNPLACE;
break;
case 3:
this.map = new Map(Global.MAP_PIRATE);
this.bornPlace = Global.MAP_PIRATE_BORNPLACE;
break;
case 4:
this.map = new Map(Global.MAP_FAUBOURG);
this.bornPlace = Global.MAP_FAUBOURG_BORNPLACE;
break;
}
}
public void loadPlayer() {
this.player = SingleGameRole.createSingleGameRole(this, Global.JACK,
this.bornPlace[0][0], this.bornPlace[0][1]);
this.gameLayerManager.append(player);
try {
this.playerGhost = new Sprite(Image.createImage("/Character/Jack.png"),
this.player.width, this.player.height);
this.gameLayerManager.append(playerGhost);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void playerUpdate() {
if(!this.player.isAlive)
this.playerGhost.setVisible(false);
this.playerGhost.setFrame(this.player.getFrame());
this.player.updateRole();
}
public void bombUpdate() {
Enumeration enu = this.bombTable.keys();
while (enu.hasMoreElements()) {
String key = (String) enu.nextElement();
Bomb bomb = (Bomb) (bombTable.get(key));
if (bomb.isvisable) {
bomb.update();
} else {
bombTable.remove(key);
bomb = null;
}
}
}
public void mapUpdate() {
this.map.update();
}
public void drawScreen() {
if (gameClock < 10000)
gameClock++;
else
gameClock = 0;
if (!this.isLoading) {
if (!isPause) {
this.operate();
this.bombUpdate();
this.playerUpdate();
this.mapUpdate();
g.setColor(0x000000);
g.fillRect(0, 0, getWidth(), getHeight());
this.drawState();
gameLayerManager.paint(g, 0, this.screenHeight
- Global.MAP_HEIGHT - 5);
} else {
this.drawPauseFrame();
}
} else {
this.drawLoadingFrame();
}
this.flushGraphics();
}
public void drawFailScreen() {
}
public void drawState() {
if (this.player.type == Global.JACK) {
g.drawImage(jackStateImage, 60, 5, Graphics.TOP | Graphics.LEFT);
}
if (this.player.type == Global.JOHN) {
g.drawImage(johnStateImage, 60, 5, Graphics.TOP | Graphics.LEFT);
}
this.number.setFrame(this.player.bombNums);
this.numberManager.paint(g, 101, 15);
this.number.setFrame(this.player.speed);
this.numberManager.paint(g, 133, 15);
this.number.setFrame(this.player.power);
this.numberManager.paint(g, 165, 15);
}
protected void drawPauseFrame() {
g.setColor(0x000000);
g.fillRect(0, 0, getWidth(), getHeight());
this.drawState();
if (gameClock % 5 == 0)
this.cursor.setFrame((this.cursor.getFrame() + 1) % 4);
this.gameLayerManager.paint(g, 0, this.screenHeight - Global.MAP_HEIGHT
- 5);
this.cursorManager.paint(g, screenWidth / 2 - pauseImage.getWidth() / 2
- 32, screenHeight / 2 - pauseImage.getHeight() / 2
+ this.chooseIndex * 33 + 24);
g.drawImage(pauseImage, screenWidth / 2, screenHeight / 2,
Graphics.HCENTER | Graphics.VCENTER);
}
protected void drawLoadingFrame() {
g.setColor(66, 70, 246);
g.fillRect(0, 0, screenWidth, screenHeight);
g.drawImage(loadingImage, screenWidth / 2, 2 * screenHeight / 5,
Graphics.HCENTER | Graphics.VCENTER);
g.setColor(0, 255, 0);
g.fillRect((screenWidth - 120) / 2, 2 * screenHeight / 3,
(this.loadPercent * 120) / 100, 10);
g.setColor(255, 0, 0);
g.drawRect((screenWidth - 120) / 2, 2 * screenHeight / 3, 120, 10);
}
public void showMe() {
new Loading(this.stageIndex);
if (this.mainThread == null) {
mainThread = new Thread(this);
mainThread.start();
}
this.dreamBubbleMidlet.show(this);
}
public void operate() {
int keyStates = getKeyStates();
this.playerGhost.setPosition(this.player.xCoodinate, this.player.yCoodinate);
if ((keyStates & DOWN_PRESSED) != 0) {
this.player.walk(Global.SOUTH);
} else {
if ((keyStates & UP_PRESSED) != 0) {
this.player.walk(Global.NORTH);
} else {
if ((keyStates & RIGHT_PRESSED) != 0) {
this.player.walk(Global.EAST);
} else {
if ((keyStates & LEFT_PRESSED) != 0) {
this.player.walk(Global.WEST);
}
}
}
}
}
protected void keyPressed(int key) {
if (!this.isPlaying)
return;
if (!this.isPause && key == -7) {// 右键
this.chooseIndex = 0;
this.pauseGame();
return;
}
if (key == 35) {// #键
this.nextStage();
return;
}
if (key == 42) {// *键
this.preStage();
return;
}
if (this.isPause) {
switch (key) {
case -1:
case -3:
if (this.chooseIndex == 0)
this.chooseIndex = 2;
else
this.chooseIndex = (this.chooseIndex - 1) % 3;
break;
case -2:
case -4:
this.chooseIndex = (this.chooseIndex + 1) % 3;
break;
case -5:// 确认键
case -6:// 左软键
switch (chooseIndex) {
case 0:
this.continueGame();
break;
case 1:
this.restart();
break;
case 2:
this.endGame();
break;
}
break;
default:
break;
}
} else {
switch (key) {
case 53:
case -5:// 确认键
this.player.setBomb(this.player.getRow(), this.player.getCol());
break;
}
}
}
public void restart() {
new Loading(this.stageIndex);
}
public void continueGame() {
this.isPause = false;
this.player.play();
}
public void pauseGame() {
this.isPause = true;
this.player.stop();
}
public void endGame() {
this.isEnd = true;
this.mainThread = null;
System.gc();
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.dreamBubbleMidlet.menu.showMe();
}
public void nextStage() {
if (this.stageIndex < 4) {
this.stageIndex++;
}
new Loading(this.stageIndex);
}
public void preStage() {
if (this.stageIndex > 0) {
this.stageIndex--;
}
new Loading(this.stageIndex);
}
class Loading implements Runnable {
private Thread innerThread;
private int stageIndex;
public Loading(int stageIndex) {
this.stageIndex = stageIndex;
innerThread = new Thread(this);
innerThread.start();
}
public void run() {
isLoading = true;
loadPercent = 0;
System.gc();
loadStage(stageIndex);
isLoading = false;
}
}
public void sleep() {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这个是游戏主体类
下面是游戏的人物类
package Game;
import javax.microedition.lci.Image;
import javax.microedition.lci.game.Sprite;
public abstract class Role extends Sprite {
/**
* 人物的基本属性
*/
protected int type;
protected int xCoodinate;
protected int yCoodinate;
protected int row;
protected int col;
protected int width;
protected int height;
protected int speed;
protected int status;
protected boolean isCanOperate = false;
protected boolean isAlive = true;
/**
* 人物放置炸弹的基本属性
*/
protected int power;
protected int bombNums;
protected int characterClock = 0;
protected int deadTime = 0;
protected Game game;
protected Role(Image image, int width, int Height, Game game) {
super(image, width, Height);
this.game = game;
}
/**
* 人物拾起道具
* @param tool
*/
public abstract void pickupTool(int tool);
/**
* 碰撞检测以及坐标的改变,如果对行走条件有特殊需求,既可以在这里写自己的条件
* @param direction
*/
public abstract void collisionCheck(int direction);
public void updateRole() {
if (this.characterClock < 10000) {
this.characterClock++;
} else {
this.characterClock = 100;
}
int row = this.getRow();
int col = this.getCol();
if (this.isAlive) {
int tool = this.game.map.getToolLayer().getCell(col, row);
if (tool > 0) {
this.pickupTool(tool);
this.game.map.getToolLayer().setCell(col, row, 0);
}
if (this.game.map.hasFeature(row, col, Global.DEADLY)) {
this.isAlive = false;
return;
}
if (this.status == Global.BORN
&& this.characterClock > Global.BORN_TIME) {
this.status = Global.SOUTH;
this.setFrame(Global.SOUTH * 6);
this.isCanOperate = true;
}
if (this.status == Global.BORN) {
if (this.characterClock % 2 == 0)
this.setFrame(Global.BORN * 6 + (this.getFrame() - 1) % 4);
return;
}
} else {
this.isCanOperate = false;
if (this.deadTime <= 20) {
this.deadTime++;
} else {
this.deadTime = 100;
this.setVisible(false);
return;
}
if (this.characterClock % 2 == 0) {
if (this.getFrame() < Global.DEAD * 6) {
this.setFrame(Global.DEAD * 6);
} else {
if (this.getFrame() < 29) {
this.setFrame(this.getFrame() + 1);
} else {
if (this.characterClock % 4 == 0) {
this.setFrame(29);
this.setVisible(true);
} else {
this.setVisible(false);
}
}
}
}
}
}
public void walk(int direction) {
if (!isAlive)
return;
if (!isCanOperate)
return;
if(direction==9) return;
this.collisionCheck(direction);
if (this.characterClock % 2 == 0) {
if (this.status == direction) {
this.setFrame(this.status * 6 + (this.getFrame() + 1) % 6);
} else {
this.status = direction;
this.setFrame(this.status * 6);
}
}
this.setPosition(xCoodinate, yCoodinate);
}
public void stop() {
this.isCanOperate = false;
}
public void play() {
this.isCanOperate = true;
}
public abstract void setBomb(int row, int col);
public void increaseBomb() {
if (this.bombNums < Global.MAX_BOMB_NUMBER)
this.bombNums++;
}
public int getRow() {
return getRow(getBottomY(yCoodinate) - Global.MAP_CELL / 2);
}
public int getCol() {
return getCol(xCoodinate + Global.MAP_CELL / 2);
}
protected int getBottomY(int y) {
return y + this.height - 1;
}
protected int getRightX(int x) {
return x + Global.MAP_CELL - 1;
}
protected int getPreY(int y) {
return getBottomY(y) + 1 - Global.MAP_CELL;
}
protected int getRow(int x) {
return x / Global.MAP_CELL;
}
protected int getCol(int y) {
return y / Global.MAP_CELL;
}
}
我的QQ是609419340
看不明白的可以随时来问我哦,还可以当时传给你撒
⑤ nodejs棋牌源代码怎么写
1、首先,nodejs棋牌是一款网页在线对战游戏,其源代码与普通程序的源代码不同。
2、其次,用cd命令转到功能包目录中包含源代码的目录。
3、最后,并创建helloworldnodepp的文件,用gedit编辑器进行编写即可。
⑥ 我有一套游戏的源码 求高人指导开发架设
마슲
⑦ 开发一个房卡游戏手机游戏手游app价格要多少钱
一、自己组建团队,进行棋牌游戏开发
假设自己招募团队的话,至少需要招募cocos2d或者unity3d工程师一名、服务端开发工程师一名、美工一名,这个基本是最低配了。开发平台的时间差不多2个月,每增加1款游戏差不多增加1个月。假设要有6款游戏,那么整体下来差不多要8-9个月。棋牌游戏开发工程师的工资基本都是超过一万的,主管的话至少的开出1.5万到2万,3个开发工程师保守一个月4万元工资。6款游戏下来整体人力成本接近40万元。
此外,还有办公成本、管理费用需要分摊。所以自己来组建团队的话,即使你只开发两三款游戏,也要二十万左右的人力投入,更何况游戏团队的组建并不是门外汉能做的事情,如果不是在一线城市或者高薪的话,很难把这批人招募到自己团队里,没有这些技术人员开发就无从谈起。即使你幸运地招募到这批技术团队,并且这些优秀的棋牌游戏开发工程师愿意兢兢业业勤勤恳恳踏踏实实认认真真地帮你把项目做完,后期这班人你打算怎么处理?继续他们开发更多的游戏还是让他们整天在公司里逛逛淘宝喝喝茶抽抽烟依旧给他们算工资?或者是花一笔钱把他们礼貌地打发走?如果打发走了他们后期游戏的维护和运营怎么办?
因此,从经济的角度来说,自己组建技术团队来开发,并不是一件特别明智的事情。当然,如果你的土豪或者想任性地玩一票,那么你可以试试。
二、外包技术公司,进行棋牌游戏定制
目前,市面上的棋牌游戏开发公司琳琅满目,鱼龙混杂。有些公司看起来非常有实力,租了漂亮的写字楼,请了很多的员工,实际上并不一定是那么回事;有些产品看起来设计得很美观,游戏界面很炫,其实是淘宝里几百元买来的低端货。
万一你遇到了不靠谱的棋牌游戏开发公司,那么售后服务变得非常痛苦:这个要收费,那么要花钱;这个不能改,那么不能调;今天没时间,明天再看看;这个修改要两万,那个修改要五万。保证让你痛不欲生苦不堪言。万一你买到了不靠谱的棋牌游戏产品,那么可能是进行游戏突然就莫名其妙崩溃了,明天游戏无数的人在刷分,后天游戏又整体失控了,遇到这种情况的时候,叫天天不应叫地地不灵,推来推去,反正就是找不到人来解决问题。那么在选择棋牌游戏开发定制外包的时候怎么来辨别正规的靠谱的开发公司呢:
1、正规的棋牌游戏开发商拥有营业执照,此证件代表开发商是正规经营。如果企业在和开发商合作的过程中,出现了任何纠纷,便可以寻找相关部门进行解决,保障企业的利益;
2、正规的棋牌游戏开发商他们的售后服务都是非常好的,能够提供专业的售后服务,如果棋牌游戏平台在运行的过程中,出现任何问题,都可寻找棋牌游戏开发商进行解决,直到问题全部解决为止;
3、不管是销售还是开发以及售后服务,正规的棋牌游戏开发商都能用专业的服务、指导来打动客户,同时也让客户对自己有一个良好的信任度,让客户发展成为开发商的忠实客户。
4、有空多了解一下棋牌开发商的已卖出去的运营平台的运营情况,虽然目前市面上有些棋牌开发商有着很多的官方数据和官方案例,但是可能真正运营成功的,保证一定的活跃玩家数量可能是很少的,前期的投资者很少关注这一点的。
最后特别提醒的是:在选择棋牌游戏开发商时,千万不要为了贪图价格便宜而和不正规的开发商进行合作,这种做法只会损坏到你自身的利益。和正规的开发商合作,能够减少很多不必要的麻烦,同时还可以保证后期的长期良好可持续性的合作关系。
那么选择了棋牌游戏开发公司后,棋牌游戏开发多少钱够开支呢?首选取决于你要买什么样的游戏,目前整体的行业情况都是买手机游戏赠送电脑端游戏,假设你只要电脑端游戏的话,均价基本是3000元/款。手机端游戏的话,如果是比较常见的游戏,基本是40000-80000元/款,如果是定制地方性棋牌游戏的话,基本是100000元/款起。另外,游戏平台的市场价为30000-60000元。
这个是市场的平均价格,每家公司会把自己的人力成本、研发投入、营销费用、办公费用分摊到每款游戏里,因而会有不同的价格差异。在这里要特别提醒大家的是,一定不要买去淘宝里的源码,那么做的结果会得不偿失。贝尔利信息技术长期致力于棋牌游戏的研发、运营和销售,研发团队由一群曾参与了QQ游戏、边峰游戏、 4399游戏等国内大型游戏平台中多款游戏的研发经验的精英组成,通过,研发一销售一运营.的 循环改进,积累了丰富的行业实战经验。公司主推的电玩城游戏系列,已经成为业内标杆性产品,并与湖南、湖北、山东、江苏、浙江、四川、贵州、福建、广东等多地合作伙伴展开深入合作,帮助客户快速占领了市场,创造了价值。
⑧ 谁有出售棋牌游戏平台源码,服务器架设及配套网页
but he failed. And he was socked with sweat.
我,和 你 说 选 择 平 台 要 多 注 意
奥 门 英 皇 人 很好玩的,
我经常去玩的,很刺激,速度也快,影响力强,
基本上会玩 游 戏的人都到这里玩,他们娱乐项目集中于一体
我 见 过 很 多 鹏 友 每 天 贝 兼 几 百 的
但 是 不 定 什 么 时 候 能 一 天 亏 几 千 甚 至 几 万
不 要 急 于 一 把,定 输,赢 梭 哈 往 往 通 往 输 光 的 捷http://bbb956.com?huu去一次就知道多好了
Better by far you should forget and smile
⑨ 哪里能买到便宜的手机棋牌源码
淘宝上可以,还有就是棋牌论坛,还有棋牌的群,这些地方都可以买到,不过兄弟,你如果没有自己的技术人员加工的话,一般都是那种万人骑的程序,随随便便就会让人破解的。如果涉及到金钱的,还望谨慎为好。
⑩ 手机麻将游戏APP开发需要多少钱
一款游戏应用可以不受地域限制,在网上随时随地参与玩游戏,很多用户都开始用手机来玩游戏。
手机麻将游戏应用的开发费用:
看开发难度;
开发引擎的难度;
开发商的技术实力;
现在市场上很多小的开发团队本身没有开发游戏的实力,很大一部分都是买的源码进行二次开发再卖给运营商。由于没有自己开发核心源码,成本很低,所以报价也会比较低。但这样的小团队,本身没有自主研发能力。开发团队不完整,这造成在棋牌游戏的运营过程中,系统不稳定经常掉线,bug多让维护难度大大增加,造成玩家流失,运营费用大增,种种造成最后入不敷出导致运营商失败。
选择专业的开发公司,由于每一个程序员都是专职的,开发经验丰富,所以报价会相对比较高,但是所开发的麻将app的质量却要高上很多。