魔塔java版代码,魔塔java下载

有用java编写“魔塔”的吗

学习内容大致可分为以下10点,但也要跟上技术发展的步伐,实时更新。

成都创新互联是专业的澜沧网站建设公司,澜沧接单;提供成都网站设计、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行澜沧网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

1、Java语言

Java语言体系比较庞大,包括多个模块。从WEB项目应用角度讲有JSP、Servlet、JDBC、JavaBean(Application)四部分技术。

(1)、Java Database Connectivity(JDBC)技术

在Java Web应用开发中,数据库管理系统(RDBMS)的使用是不可缺少的。JDBC(Java Database Connectivity) 是一种用于执行SQL 语句的 Java API。它由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的API,使他们能够用纯Java API 来编写数据库应用程序。

简单地说,JDBC 可做三件事:

l 与数据库建立连接,

l 发送SQL 语句,

l 处理结果。

(2)、Servlet技术

Servlet是运行在服务器端的程序,可以被认为是服务器端的applet。servlet被Web服务器(例如Tomcat)加载和执行,就如同applet被浏览器加载和执行一样。servlet从客户端(通过Web服务器)接收请求,执行某种操作,然后返回结果。

@@会魔塔制作的高手请进,答对追加50分@@

1.脚本:▲Scene_Title

这里面的紫色字体也就是我们可以改的地方。有几行是:

#

生成命令窗口

s1

=

"新游戏"

s2

=

"继续"

s3

=

"退出"

S1后面引号是开始游戏选择的时候出现的文字,可以改一下,S2、S3以此类推。

确定后按F12游戏测试

2.脚本:▲Scene_Menu

里面有如下几行:

#

生成命令窗口

#

s1

=

$data_system.words.item

#

s2

=

$data_system.words.skill

#

s3

=

$data_system.words.equip

#

s4

=

"状态"

s1

=

"敌物资料"

s2

=

"使用物品"

s3

=

"存档"

s4

=

"读档"

s5

=

"重新开始"

s6

=

"结束游戏"

前面不带#的S1~S6后面的文字可以改变,也就是游戏时按ESC开启画面的时候左边的一行了。

3.脚本:▲Scene_Save

里面的这几行

#--------------------------------------------------------------------------

#

初始化对像

#--------------------------------------------------------------------------

def

initialize

super("要保存到这个文件吗?")

SUPER后括号中引号里面的“要保存到这个文件么?”是可以改的,存档的时候上面写的字就是改后的文字。

4(两个脚本连说)脚本:①▲Scene_Load②■Scene_Load2

这两个脚本非常相似,一个是按ESC之后的读档显示文字,另一个是开始界面读取进度的文字,到底哪个是哪个我搞不清楚,先看代码:

#--------------------------------------------------------------------------

#

初始化对像

#--------------------------------------------------------------------------

def

initialize

#

再生成临时对像

$game_temp

=

Game_Temp.new

#

选择存档时间最新的文件

$game_temp.last_file_index

=

latest_time

=

Time.at(0)

for

i

in

0..3

filename

=

make_filename(i)

if

FileTest.exist?(filename)

file

=

File.open(filename,

"r")

if

file.mtime

latest_time

latest_time

=

file.mtime

$game_temp.last_file_index

=

i

end

file.close

end

end

super("要载入哪个文件?")

end

SUPER后“要载入哪个文件?”是要改的,与存档近似。

@@@@@最重要的@@@@@

5.脚本:■Window_PlayerDate

这个脚本应该是最有用的,显示了玩游戏的时候左面的攻击防御等一系列东西!脚本也要复制很长,所以我分开来讲:

self.contents.font.color

=

text_color(3)

#

self.contents.draw_text(4,

0,

70,

45,

"第",

2)

self.contents.draw_text(4,

0,

125,

45,

"层",

2)

这一段代码,是最前面显示XX层的界面,如果想在前面加上“第”(也就是第XX层)的话就要把#符号去掉,如果想改变字体的颜色就要看前面的color后面小括号里显示的数字了,每一个数字代表的颜色都不同,一共有7个颜色,就是1~7,可以换颜色。

self.contents.draw_text(4,

0,

40,

142,

"等级",

2)

self.contents.draw_text(4,

0,

40,

208,

"生命",

2)

self.contents.draw_text(4,

0,

40,

263,

"攻击",

2)

self.contents.draw_text(4,

0,

40,

318,

"防御",

2)

self.contents.draw_text(4,

0,

40,

373,

"魔防",

2)

if

$game_switches[Playerdate_magicdef]

self.contents.draw_text(4,

0,

40,

439,

"经验",

2)

self.contents.draw_text(4,

0,

40,

494,

"金币",

2)

self.contents.font.color

=

text_color(6)

self.contents.draw_text(4,

0,

60,

576,

"黄钥匙",

2)

self.contents.font.color

=

text_color(4)

self.contents.draw_text(4,

0,

60,

640,

"蓝钥匙",

2)

self.contents.font.color

=

text_color(2)

self.contents.draw_text(4,

0,

60,

704,

"红钥匙",

2)

这一段代码,是显示等级生命等东西的了,这里面好多我都没研究明白,以红钥匙那行的代码来说,4,0,60,704中的704代表上下,如果输入704以前的数字,“红钥匙”这三个字就会往上挪。不改变是正常的,要不就会里出外进了。如果要想等级一个颜色,生命一个颜色等,就要加脚本了,先给你们看加了颜色的代码,再给你们讲:

self.contents.font.color

=

text_color(1)

self.contents.draw_text(4,

0,

40,

142,

"等级",

2)

self.contents.font.color

=

text_color(2)

self.contents.draw_text(4,

0,

40,

208,

"生命",

2)

self.contents.font.color

=

text_color(3)

self.contents.draw_text(4,

0,

40,

263,

"攻击",

2)

self.contents.font.color

=

text_color(4)

self.contents.draw_text(4,

0,

40,

318,

"防御",

2)

self.contents.font.color

=

text_color(5)

self.contents.draw_text(4,

0,

40,

373,

"魔防",

2)

if

$game_switches[Playerdate_magicdef]

self.contents.font.color

=

text_color(6)

self.contents.draw_text(4,

0,

40,

439,

"经验",

2)

self.contents.font.color

=

text_color(7)

self.contents.draw_text(4,

0,

40,

494,

"金币",

2)

self.contents.font.color

=

text_color(6)

self.contents.draw_text(4,

0,

60,

576,

"黄钥匙",

2)

self.contents.font.color

=

text_color(4)

self.contents.draw_text(4,

0,

60,

640,

"蓝钥匙",

2)

self.contents.font.color

=

text_color(2)

self.contents.draw_text(4,

0,

60,

704,

"红钥匙",

2)

self.contents.font.color

=

text_color(3)

self.contents.draw_text(4,

0,

60,

768,

"绿钥匙",

2)

就是在每个代码前面加了self.contents.font.color

=

text_color(n)(n代表颜色代码)

就让每个字活灵活现了~~如果没改,将跟第XX层显示的颜色一样!

再继续说:下一段代码:

self.contents.font.color

=

text_color(3)

self.contents.draw_text(4,

0,

60,

770,

"中毒".to_s,

2)

if

$game_switches[13]

self.contents.font.color

=

text_color(5)

self.contents.draw_text(4,

0,

110,

770,

"衰弱".to_s,

2)

if

$game_switches[15]

self.contents.font.color

=

text_color(1)

self.contents.draw_text(4,

0,

60,

820,

"迟缓".to_s,

2)

if

$game_switches[12]

这就是中毒、衰弱、迟缓加到勇士身上后在左边显示的字了,如果不喜欢可以换哦!~~

6.脚本:■Window_EnemyDate

里面有得到怪物手册后可以显示怪物资料的东西了(镜子怪物在样板0729中没有,在0808样板中有了)

self.contents.font.color

=

text_color(0)

@pro="普

通"

case

skill.maxsp

when

self.contents.font.color

=

text_color(0)

@pro="普

通"

when

1

self.contents.font.color

=

text_color(3)

@pro="中

毒"

when

2

self.contents.font.color

=

text_color(5)

@pro="衰

弱"

when

4

self.contents.font.color

=

text_color(2)

作者:

藕色猫

2006-8-13

18:26

回复此发言

--------------------------------------------------------------------------------

3

【分析】魔塔样板脚本分析(绝对原创,申精)

@pro="吸

血"

@vampire=($game_actors[$game_variables[1]+1].hp*0.2).to_i

when

16

self.contents.font.color

=

text_color(11)

@pro="先

攻"

@first=1

when

32

self.contents.font.color

=

text_color(1)

@pro="迟

缓"

when

64

self.contents.font.color

=

text_color(12)

@pro="魔

攻"

@magicatk=@md

when

128

self.contents.font.color

=

text_color(6)

@pro=skill.eva.to_s+"连击"

@turnatk=skill.eva

when

256

self.contents.font.color

=

text_color(4)

@pro="领

域"

when

512

self.contents.font.color

=

text_color(9)

@pro="爆

击"

@edam=1.2

when

1024

self.contents.font.color

=

text_color(10)

@pro="隐

形"

when

2048

self.contents.font.color

=

text_color(8)

@pro="无

敌"

when

4096

self.contents.font.color

=

text_color(9)

@pro="削

血"

when

8192

self.contents.font.color

=

text_color(7)

@pro="镜

子"

if

skill.atk$game_actors[$game_variables[1]+1].str

skill.atk=($game_actors[$game_variables[1]+1].str).to_i

end#只有怪物基础防御小于勇士攻击后才使它的防御等于勇士攻击-1

when

8

self.contents.font.color

=

text_color(4)

@pro="坚

固"

if

skill.pdef$game_actors[$game_variables[1]+1].str

skill.pdef=($game_actors[$game_variables[1]+1].str+1).to_i

end#只有怪物基础防御小于勇士攻击后才使它的防御等于勇士攻击-1

end

普通、中毒、衰弱、吸血、先攻、迟缓、魔攻、连击、领域、暴击、隐形、无敌、削血、镜子、坚固。这些文字都可以改,比如在颠峰魔塔中就改了部分文字,领域改成怪异者……这些如果改了,在怪物属性中也会显示的到!

下一段代码:

self.contents.draw_text(120,

y,

a,

32,

"生命",

0)

self.contents.draw_text(230,

y,a,

32,

"攻击",0)

self.contents.draw_text(340,

y,

a,

32,

"防御",0)

self.contents.draw_text(230,

y+32,

a,

32,

"经验",

0)

self.contents.draw_text(120,

y+32,a,

32,

"金币",

0)

self.contents.draw_text(340,

y+32,

a,

32,

"损失",

0)

这上面千万不要以为是你的生命攻击防御,而是怪物的,如果改一下会很好哦!在样板0808中把金币改成了魔塔币,经验改成经验点,感觉不错!

7.脚本:▲Window_Gold

这段脚本本来我不想说,因为做魔塔样板的人都会把这个写到里面,如果改了,魔塔样板的作者不会高兴的!就是按ESC后的左下角的东西,样板0729中显示Ver0729

,这些如果不征求样板作者同意不要改,除非在魔塔中绘制了样板资料。

#--------------------------------------------------------------------------

#

刷新

#--------------------------------------------------------------------------

def

refresh

self.contents.clear

self.contents.font.color

=

system_color

self.contents.draw_text(0,

0,

130,

32,

"Ver0816",

1)

end

end

这段代码中“Ver0816”(0816是我最近要弄的样板)是可以改的,在颠峰魔塔中就改成颠峰魔塔,如果字多了会发现字体小了,不好看!

8.脚本:Window_PlayTime

里面显示的是游戏时间的脚本,脚本部分代码如下:

#--------------------------------------------------------------------------

#

刷新

#--------------------------------------------------------------------------

def

refresh

self.contents.clear

self.contents.font.color

=

system_color

self.contents.draw_text(4,

0,

120,

32,

"游戏时间")

游戏时间是可以改的,最好是4个字的,要不字会小,可以改成追忆时间,回忆时间等

9.脚本:Window_Steps

显示的是走过的步数,代码如下:

#--------------------------------------------------------------------------

#

刷新

#--------------------------------------------------------------------------

def

refresh

self.contents.clear

self.contents.font.color

=

system_color

self.contents.draw_text(4,

0,

120,

32,

"步数")

步数是可以改的,我就不多说了。

求一个简单RPG游戏的代码,JAva编写的

package com.lxi;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class Rpg {

@SuppressWarnings("unchecked")

public static void main(String[] args) throws Exception {

System.out.println("在这里输入两个人物进行PK,以英文逗号分隔: [BM,DH,MK]");

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

ClassPerson c1;

ClassPerson c2;

try {

String temp = br.readLine();

String[] str = temp.split(",");

if (str.length != 2) {

throw new Exception("输入格式有误,按默认PK");

}

c1 = (ClassPerson) Class.forName("com.lxi."

+ str[0].toUpperCase());

c2 = (ClassPerson) Class.forName("com.lxi."

+ str[1].toUpperCase());

} catch (Exception e) {

// TODO Auto-generated catch block

c1 = (ClassPerson) Class.forName("com.lxi.BM");

c2 = (ClassPerson) Class.forName("com.lxi.DH");

}

try {

Person p1 = c1.newInstance();

Person p2 = c2.newInstance();

long time = System.currentTimeMillis();

long nextTime1 = (long) (time + p1.coldTime*1000); //

long nextTime2 = (long) (time + p2.coldTime*1000); //发动攻击的时间

System.out.println("---游戏开始---");

while (true) {

long currenTime = System.currentTimeMillis();

if (nextTime1  currenTime) {  //时间到则发动攻击

p1.hit(p2);

nextTime1 += p1.coldTime*1000 + p1.waitTime*1000; //下次攻击时间=冷却时间+被晕眩时间

p1.waitTime = 0;  //回合结束,重置被晕眩时间为0

}

if (nextTime2  currenTime) {

p2.hit(p1);

nextTime2 += p2.coldTime*1000 + p2.waitTime*1000;

p2.waitTime = 0;

}

}

} catch (ClassCastException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (InstantiationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}

}

}

package com.lxi;

import java.util.Random;

class BM extends Person {

public BM() {

val = 650;

coldTime = 1.5;

fight = 40;

chanceHit = 3;

chanceDefense = 3;

waitTime = 0;

}

int count = 0;   //防御技能发动的次数

int temp = 40;   //攻击力,值同fight

boolean hitFlag = false;

boolean defenseFlag = false;

Random rand = new Random();

public void hit(Person p) {

if (rand.nextInt(10)  chanceHit) {

fight = fight * 2;   //发动双倍攻击

hitFlag = true;

}

int hurt = p.defense(this);

p.val = p.val - hurt;

fight = temp;     //还原为单倍攻击

if (p.val = 0) {

System.out.println(this.getClass().getSimpleName() + "胜出!");

System.exit(0);

}

System.out.println(this.getClass().getSimpleName() + "攻击"

+ p.getClass().getSimpleName() + ","

+ this.getClass().getSimpleName()

+ (this.hitFlag ? "发动攻击技能   " : "未发动攻击技能   ")

+ p.getClass().getSimpleName()

+ (this.defenseFlag ? "发动防御技能   " : "未发动防御技能   ")

+ this.getClass().getSimpleName() + ":" + this.val + ","

+ p.getClass().getSimpleName() + ":" + p.val);

hitFlag = false;

defenseFlag = false;

}

public int defense(Person p) {

if (rand.nextInt(10)  chanceDefense) {

if (count != 0) {

p.val = p.val - p.fight;

count++;

defenseFlag = true;

if (p.val = 0) {

System.out.println(this.getClass().getSimpleName() + "胜出!");

System.exit(0);

}

}

}

return p.fight;

}

}

class MK extends Person {

public MK() {

val = 700;

coldTime = 2.5;

fight = 50;

chanceDefense = 6;

chanceHit = 3;

waitTime = 0;

}

boolean hitFlag = false;

boolean defenseFlag = false;

Random rand = new Random();

public void hit(Person p) {

if (rand.nextInt(10)  chanceHit) {

p.waitTime = 3;   //使对方晕眩3s

hitFlag = true;

}

int hurt = p.defense(this);

p.val = p.val - hurt;

if (p.val = 0) {

System.out.println(this.getClass().getSimpleName() + "胜出!");

System.exit(0);

}

System.out.println(this.getClass().getSimpleName() + "攻击"

+ p.getClass().getSimpleName() + ","

+ this.getClass().getSimpleName()

+ (this.hitFlag ? "发动攻击技能   " : "未发动攻击技能   ")

+ p.getClass().getSimpleName()

+ (this.defenseFlag ? "发动防御技能   " : "未发动防御技能   ")

+ this.getClass().getSimpleName() + ":" + this.val + ","

+ p.getClass().getSimpleName() + ":" + p.val);

hitFlag = false;

defenseFlag = false;

}

public int defense(Person p) {

if (rand.nextInt(10)  chanceDefense) {

defenseFlag = true;

return p.fight / 2;   //防御技能发动,伤害减半

}

return p.fight;

}

}

package com.lxi;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.Random;

//三个人物的基类

abstract class Person {

int val;             //生命值

double coldTime;     //冷却时间

int waitTime;        //晕眩时间

int fight;          //攻击力

int chanceHit;      //发起主动技能的概率

int chanceDefense;  //发起防御技能的概率

abstract void hit(Person p);   //攻击技能

abstract int defense(Person p); //防御技能,返回被伤害点数

}

class DH extends Person {

public DH() {

val = 600;

coldTime = 1.0;

fight = 30;

chanceHit = 3;      //表示30%的概率

chanceDefense = 3;

waitTime = 0;

}

Random rand = new Random();

boolean hitFlag = false;      //主动技能发动的标识

boolean defenseFlag = false;  //防御技能发动的标识

public void hit(Person p) {

if (rand.nextInt(10)  chanceHit) {  //发动主动技能

int hurt = p.defense(this);

p.val = p.val - hurt;

if (p.val = 0) {

System.out.println(this.getClass().getSimpleName() + "胜出!");

System.exit(0);

}

val = val + hurt;

if (val  600)

val = 600;

hitFlag = true;     //标记主动技能已经发动

} else {  //进行普通攻击

int hurt = p.defense(this);

p.val = p.val - hurt;

if (p.val = 0) {

System.out.println(this.getClass().getSimpleName() + "胜出!");

System.exit(0);

}

}

System.out.println(this.getClass().getSimpleName() + "攻击"

+ p.getClass().getSimpleName() + ","

+ this.getClass().getSimpleName()

+ (this.hitFlag ? "发动攻击技能   " : "未发动攻击技能   ")

+ p.getClass().getSimpleName()

+ (this.defenseFlag ? "发动防御技能   " : "未发动防御技能   ")

+ this.getClass().getSimpleName() + ":" + this.val + ","

+ p.getClass().getSimpleName() + ":" + p.val);

hitFlag = false;     //

defenseFlag = false; //重置标记,下次重用

}

public int defense(Person p) {

if (rand.nextInt(10)  chanceDefense) {

defenseFlag = true;   //标记防御技能已经发动

return 0;

} else {

return p.fight;

}

}

}


网站栏目:魔塔java版代码,魔塔java下载
分享地址:http://scyanting.com/article/hegpso.html