此文是9KGameStudio的Mysql教程的中文重写版,里面会写入一些个人体会,当然本人也是个UE4 C++菜鸟,有错的地方还请见谅。
两台同属于一个局域网下的PC进行通讯。
有时候会发现客户端搜索不到主机的现象一般是2台机器没在同一网段,光ping通不能算做可以进行联机的条件。
检测和修改方法:
1,【Win键+R】d出运行d窗。
2,在文本框内输入cmdd出控制台窗口。
3,输入ipconfig 观察2台电脑的IPV4地址 如果地址前三位一致则满足同一局域网的条件。
3.5,如果不同,则应手动设置到相同 计算机-网络-属性-更改适配器设置-ipv4-手动设置地址。
1,创建任意项目,然后打开项目所在目录下的Config/DefaultEngine.ini并在文本末尾添加[OnlineSubsystem] DefaultPlatformService=LAN 。
这个地方=Null 或者=LAN都可以。
然后保存并继续
直接参考多人q战项目的用法,项目位于UE4的学习板块。
核心节点就这些,UI蓝图逻辑都是围绕这几个节点工作的。
一般采取编辑器状态下直接测试,更改运行时的玩家数量并采用窗口模式播放,即可直接打开多个独立项目。
就是你会发现自动连接了怎么办呢?
需要到Editor Preferences --- Level Editor --- Play ---Multiplayer Options --- Auto Connect To Server 的选项取消勾选就好了,这样我们就可以自己主动的去连接主机了。
如果想让客户端直接进入,主机所在场景,需要将主机所在场景作为监听Level。
以下两种方式均可。
添加按钮监听。回见内容写成方法,然后调用即可。大概像下面这样importjava.awt.event.ActionEvent
importjava.awt.event.ActionListener
importjavax.swing.JButton
publicclassTest{
publicstaticvoidmain(String[]args){
JButtonA=newJButton("A")
JButtonB=newJButton("B")
JButtonC=newJButton("C")
A.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
methodA()
}
})
B.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
methodB()
}
})
C.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
methodA()
methodB()
}
})
}
publicstaticvoidmethodA(){
//执行A方法
}
publicstaticvoidmethodB(){
//执行B方法
}
}
追问:
是这样的,我想做成这样:
一个JFrame页面,该页面有三个按钮A、B、C;当我点击按钮A,执行事件A;当我点击按钮B,执行事件B;当我点击按钮C,执行事件A和事件B两个事件。该页面是与数据库相连的,当我进入的时候,从数据库去取一个数据(该数据有三个值A、B、C)。执行程序的时候,如果从数据库取到的数是A,自动执行按钮A的事件(我并没有点击按钮A);取到什么值,执行的就是相对应的按钮的事件。
回答:
JFrame的代码我就不写给你了,那个代码量太大了。就算我写了这里也贴不下。
我不明白你到底想做什么。既然根据从数据库中取出来的值执行方法,那你这三个按钮的意义又在哪里呢?
不过不管你要写成什么样的,总体过程是没变的。首先你可以先从数据库中取数据,然后根据取出来的数据做个判断,用if-else也行,switch-case也行,生成不同的分支,然后写A和B两个方法,根据分支选择执行A或者B。
这样有什么难的嘛?
追问:
JAVA自动点击 按钮的代码怎么写。 Delphi 中,程序自动点击某个按钮A,我只要陪写上 A.Click;程序就会执行按钮A的事件。请问一下:Java 中也可以这样么?JAVA写成A.Click就报错。我是想先从数据库取值,自动执行界面上的按钮的事件,当我点击按钮的时候,我会修改数据库的值。我就是想让程序打开的时候,得到上次程序执行的事件。
回答:
因为已经将处理事务的过程写成方法了,所以你只需要直接调用哪个方法即可。java里没有自动点击按钮的方法,但是可以自动调用方法。比如你在加载完这个界面后直接调用methodA(),那不就和自动点击A没区别了吗?
追问:
这个methodA()就是A的事件,这个按钮A的事件是:
这个就是那个按钮的事件,我怎么调用这个事件使他自动执行事件的 *** 作。
回答:
抽取成方法啊。比如下面代码:
publicvoidactionPerformed(ActionEvente){
inta=0
intb=0
intc=a+b
}你可以将代码变成这样:
publicvoidactionPerformed(ActionEvente){
methodA()
}
privatevoidmethodA(){
inta=0
intb=0
intc=a+b
}当需要自动调用的时候直接调用methodA()即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)