- 浏览: 96862 次
- 性别:
最新评论
-
L冬萤:
这个走到边界会报错,还有不加那个视角阴影,旁边的地图加载不是很 ...
【纯JAVA语言做个RPG游戏】2.游戏界面及角色移动的基本实现 -
幻神舞动:
【纯JAVA语言做RPG游戏】3.地图碰撞检测和角色行走的实现 -
kotoko:
还有,想请问一下,我用自己的图片,事先已调成50*50,为什么 ...
【纯JAVA语言做RPG游戏】1.做个瓷砖地图生成器 -
kotoko:
你的PanelListenner 没有实现吧
【纯JAVA语言做RPG游戏】1.做个瓷砖地图生成器 -
wuzhongzangyue:
真棒
【纯JAVA语言做个RPG游戏】2.游戏界面及角色移动的基本实现
文章列表
上次搞定了角色的行走以及角色与地图元素的碰撞检测问题,这次就在这个地图中加入第一个NPC吧..
首先,前面做地图的时候用的是三层的数组,第一层用来存放角色脚下的素材,第二层是和角色同一层次的素材,而第三层 ...
额⊙▽⊙...
上次做好了游戏的基本界面,地图也能成功的显示出来了,不过前面的游戏还没有实现角色与地图的碰撞检测,也就是说角色可以在地图上到处跑,无视那些树啊,石头什么的,这次的第一件事就是要检测角色与地图上物体的碰撞......再加上前面程序的玩家角色是用一个小球替代的,太丑了,这次换成一个动态的小LOLI,让它能够在地图上跑动起来 (╯▔▽▔)╯.....
首先,对上次的一些BUG进行改进:
上次说到角色的偏移量,我直接把它设为0了,这是严重的错误,导致我后面出BUG测试了2个多小时,因为如果角色从出生点直接向左或者是上移动的话,它的x和y偏移量就会变成负数,变成负数去对50 ...
继上次做的地图编辑器,我大致的做了一个4000X4000的游戏地图数组,不过只画了一部分,以后要加什么新东西继续编辑这个地图就行了,保存在了一个文件中.
现在便可以继续下一步,做出游戏的大致界面了.
现 ...
开个坑,想做个JAVA游戏。
虽然现在有着各种游戏引擎,使得做游戏的效率提高了很多,但是用着别人的代码来做感觉对自己也没啥提升,而且在游戏的模式上也不得不去迎合别人的思维,所以露珠准备应用前面学到的所有JAVA知识,来完成这个不用引擎的游戏项目,也算是一个对前面知识的总结与复习吧 O(∩_∩)O~
嗯,下面开始正题。
说到RPG游戏,首先想到的是现在市面上各种各类的3D巨作,可这些是我这种菜鸟暂时无法企及的,所以呢,目标就定为2D的RPG游戏了.
一想到2D的RPG游戏,立马回想起了一系列的以前电子词典上面的《金庸群侠传》《侠客行》之类的,这种游戏的共同点便是, ...
在java中可以通过直接向数据库传输SQL语言字符串的方式来调用数据库中的数据,但这样会有很多缺点,比如说容易被他人从网络注入SQL语句,传输数据量大影响效率之类的。
所以一般的JAVA程序操作数据库的方式都是通过事先在数据库中用PL/SQL编程建立好我们需要操作的过程或者函数,然后由JAVA程序通过JDBC直接来调用数据库中的过程来达到我们的目的,这样他人就难以从网络悄悄的注入SQL语句来窃取我们数据库的数据了,并且传输的数据量也变小的,优化了效率。
下面是用JDBC调用数据库中的过程和函数来达到获取和修改数据的目的的一个实例:
1.首先我们用scott用户登录 ...
一. 两者的关系
1.包(Package):Oracle中的包是用来在数据库中对函数和过程进行分类的(近似于JAVA中的接口),包中的函数和过程都只需进行声明,不用给出具体的操作语句(近似于JAVA中抽象方法).
2.包体(Package body):只有包我们是不能操作包中的函数和过程的,应为他们都没有给出具体的实现语句,所以如果要使用包中的函数和过程的话,就需要将其实例化成一个包体,将里面的函数和过程具体化(相当于JAVA中建立一个类去实现一个接口,重写其中的方法).
二. 怎么创建包和包体
1.创建包:
create (or replace) package 包名 is ...
正则表达式的内容很多,但是抛开那些复杂的,最基本的总结起来也就是下面几点:
1.一个中括号无论里面有什么都是代表一个字符.
2.正则表达式中可以用逻辑符号,比如&与,|或,^非.
3.再就是数量词,放在一个字符的后 ...
前面用DOM解析XML只是对里面的数据读取出来,而DOM解析最大的优势并不是读取,而是可以方便的修改里面的元素。
接着上回的代码,在类中新建一个方法来进行XML文件的修改和增加节点操作。
DOM修改的原理是,DOM在读取XML文件时读入的是文件中所有的节点组成一个DOM树的Document文件,这个文件被读取出来之后我们用JAVA语言可以操作它,不过这样修改也仅仅是修改了JAVA中的这个对象而已,所有在我们将DOM文件修改完了之后还要进行保存工作,这样才是真正的做到了修改XML文件。
原来的XML文档:
<?xml version="1.0" encodin ...
DOM解析XML文件是一次性将目标文件中的所有节点都读入,然后再进行后续操作的方式。
一般分为以下几步:
1.定义好目标XML文件路径path。
2.实例化DOM解析工厂对象,DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(),这种工厂类都不能用new的方式直接产生对象,必须用调用类的newInstance方法来产生对象。
3.用上面的工厂对象生成DOM解析器对象,DocumentBuilder builder = factory.newDocumentBuilder()。
4.用解析器对象对目 ...
首先用一个XML写入帐号密码
<?xml version="1.0" encoding="utf-8"?>
<oracle>
<user>
<name>scott</name>
<pwd>scott</pwd>
</user>
</oracle>
采用SAX解析的方式,来将其解析出来
代码如下:
首先是读取XML节点的类FromXML.java
/**
* 从XML中读取帐号密码的类
* @auth ...
用JAVA操作数据库,内部并没有直接可以使用的类,所以必须引入外部的jar包,首先网上下载一个jdbc的包,将其添加进所需要进行数据库操作的java工程,这样便可以用JAVA使用jdbc来操作数据库了..
在上面的准备工作完成之后,便需要进行以下几步操作来实现JAVA程序与数据库的连接。
1.装载驱动类:用Class类调用forName()方法,方法内的参数为OracleDriver这个jdbc包中类的相对路径.
2.定义连接字符串:格式为jdbc:oracle:thin:@IP地址:1521:ORCL(其中1521为ORACLE的默认端口)
3.连接数据库并且获得连接对象conn: ...
在JAVA中有内部的方法来用SAX解析XML,分为一下几个步骤:
1.首先创建文件对象,找到这个要解析的XML文件。
2.创建工厂对象:接着便是建立SAX解析工厂对象SAXParserFactory,这个类和其他类不同,不能直接的用new方法来创建对象,必须使用它的newInstance()方法来创建对象。
3.创建解析器对象:工厂有了之后呢便是创建SAX的解析器对象了,这个解析器对象是从前面创建的工厂对象中里面来的,用工厂对象调用newSAXparser()方法,就得到了一个解析器对象。
4.创建事件处理器对象:前面的解析器对象是用来对XML文件进行一个节点一个节点的读取操作的,而 ...
SAX解析XML文档与DOM解析不同的是SAX是对XML里面的节点一个一个的进行读取的,也就是读一个就将这个节点交给其他对象处理然后接着读取下一个,而DOM则是先将XML里面所有的节点读取到内存中的,这样看来SAX与DOM的优劣性也就一目了然了:
1.首先SAX比DOM优秀的地方在于SAX是一条一条解析的,所有就不会占用太大的内存,能够很好的处理大数据的XML文档。
2.然后DOM的劣势也正是其优势,由于DOM方式是一次性将所有节点都读入内存的,所有能够很方便的对XML文档进行增删改查,而SAX就只能查询内容而不能增加和删除了。
<div class="iteye-blog-content-contain" style="font-size: 14px"></div>
1.创建一个新用户
2.赋予用户链接数据库的权限
3.给用户加锁
4.给用户解锁
5.修改用户密码
6.赋予用户建表的权限
7.查看用户当前所有表
8.查看表的内容
9.新建一个表
10.修改表中的数据
java游戏对于角色移动流畅度的处理
- 博客分类:
- java多线程
当我们用java的swing做小游戏的时候,如果只是单纯的用键盘监听器,去监听上下左右键的按下,每按一下,让角色的坐标变化一次的话,做出来的移动效果将会十分的卡顿,而且不能向斜方向移动。
所以,在让角色移动的监听器这里,我们使用多线程的方式。
首先让角色启动4个线程,分别控制上下左右移动,着4个线程启动之后便在不停的运行,然后在线程中设定一个判断,判断一个boolean变量是否为true,如果为true,角色就移动,如果为false,角色便不移动,初始设置这上下左右4个boolean变量都为false,所以角色在无人操作的情况下是不移动的,然后再用键盘监听器,监听上 ...