地图就是一张图片,如何更简单判断是否有阻碍物?
我的想法是尽量不动程序,在图上下功夫,像其它游戏的地图文件都是一个独立的文件,
能把阻碍物设计在地图上不是更符合OO思想?
因为不同的地图它的阻碍物分布不同,如果能在图片做标记,在程序里去取,这样不是更好,装载地图的时候去分析地图,得出所有阻碍物的分布情况,再处理.
但是一直不知道如何在地图上创建阻碍物标记,哪位有更好的想法,帮帮偶~
地图就是一张图片,如何更简单判断是否有阻碍物?
我的想法是尽量不动程序,在图上下功夫,像其它游戏的地图文件都是一个独立的文件,
能把阻碍物设计在地图上不是更符合OO思想?
因为不同的地图它的阻碍物分布不同,如果能在图片做标记,在程序里去取,这样不是更好,装载地图的时候去分析地图,得出所有阻碍物的分布情况,再处理.
但是一直不知道如何在地图上创建阻碍物标记,哪位有更好的想法,帮帮偶~
从原站打包的程序通过FTP上传到另一台服务器上发现生成的图片显示不了了,用UE打开发现文件头部多了EF BB BF字样,怎么头部会多出BOM呢,原程序又不好的,只有可能出现在FTP上面,于是改了FTP传输模式为二进制,OK问题解决。
如果不是FTP引起的,可以用UE打开再另存为无BOM格式,文件多了的话挺麻烦的~
把下面的TableName改成自己的表名,0是设置自增值是多少
DBCC CHECKIDENT(TableName, RESEED, 0)
数据库事务日志满了,需要清除,执行下面语句,把数据库名DatabaseName改成自己的数据库再执行
BACKUP log DatabaseName WITH NO_LOG
GO
--收缩数据库
DBCC SHRINKDATABASE(DatabaseName)
GO
Flex Builder 4改名为Flash Builder 4
Flash Builder 4新功能:
Flex SDK:
Flash Builder新功能:
Flash Builder 4官方主页 http://labs.adobe.com/technologies/flashbuilder4/
注意:需要登陆才能下载。
在ActionScript主程序内加入下面例句即可:
width 宽度、height 高度、frameRate 帧率(fps)、backgroundColor 背景色
[SWF(width="800", height="600", frameRate="20", backgroundColor="#FFFFFF")]
将此句放入class前面就行啦
oioq.com原创Flex+Java Socket多线程实列
Socket服务主程序 SocketServer.java
package org.codedata;
import java.net.*;
import java.io.*;
public class SocketServer extends Thread {
private ServerSocket ss;
private Socket socket;
private int port;
private boolean run = true;
public SocketServer(int port){
this.port = port;
start();
}
public void run(){
try {
new SecurityServer();
ss = new ServerSocket(port);
System.out.println("正在启动服务。。。");
System.out.println("服务启动成功,端口("+ port +")");
Message.append("正在启动服务。。。");
Message.append("服务启动成功,端口("+ port +")");
while (run){
socket = ss.accept();
Message.append("收到消息:" + socket);
System.out.println("收到连接" + socket);
new SocketThread(socket);
}
} catch (IOException e) {
System.out.println("Error:" + e.getMessage());
}
}
public void sstop(){
try{
run = false;
ss.close();
SocketFrame.getJTextArea().append("服务已停止\n");
}catch(Exception e){
System.out.println("发生错误:" + e.getMessage());
}
}
}
Socket服务线程 SocketThread.java
package org.codedata;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class SocketThread extends Thread {
private BufferedReader br;
private PrintWriter pw;
private Socket so;
private boolean status = true;
public SocketThread(Socket socket){
so = socket;
start();
}
public void run(){
try{
while(status){
br = new BufferedReader(new InputStreamReader(so.getInputStream(), "UTF8"));
pw = new PrintWriter(new OutputStreamWriter(so.getOutputStream(), "UTF8"));
String line = br.readLine();
if(line != null){
line = line.trim();
pw.println("收到消息:" + line);
pw.flush();
Message.append("收到消息:" + line);
System.out.println("收到消息:" + line);
}
}
} catch(IOException e){
System.out.println("Error:" + e.getMessage());
}
}
public void close(){
//socketServer.stop();
}
}
Flex主程序: SocketClient.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontFamily="Arial" fontSize="12" applicationComplete="init()">
<mx:Script>
<![CDATA[
import flash.system.fscommand;
import flash.utils.setInterval;
import mx.controls.Alert;
import com.test.MySocketClient;
private var sc:MySocketClient = new MySocketClient();
public function init():void{
connectBtn.addEventListener(MouseEvent.CLICK, connect);
sendBtn.addEventListener(MouseEvent.CLICK, send);
setInterval(function():void{
if(sc.isConnected()){
if(sc.readReady()){
msgBox.text = msgBox.text.replace(/\s*$/g,"");
msgBox.text += msgBox.text == "" ? sc.read() : "\n" + sc.read();
}
}
}, 1000);
}
public function connect(e:MouseEvent):void{
sc.connect(host.text, (int)(port.text));
}
public function send(e:MouseEvent):void{
sc.send(msgInput.text);
msgInput.text = "";
}
]]>
</mx:Script>
<mx:Button id="sendBtn" x="381" y="245" label="发送消息" />
<mx:TextInput id="msgInput" x="29" y="245" width="344" height="22"/>
<mx:TextArea id="msgBox" x="29" y="79" width="422" height="156"/>
<mx:Label x="29" y="58" text="收到的消息" width="69" height="18" fontFamily="Times New Roman"/>
<mx:Label x="348" y="58" text="连接状态:"/>
<mx:Label x="409" y="58" text="未连接"/>
<mx:TextInput id="host" x="67" y="29" width="165" height="21" text="127.0.0.1"/>
<mx:TextInput id="port" x="296" y="29" width="63" height="21" text="999"/>
<mx:Label x="30" y="30" text="主机:"/>
<mx:Label x="260" y="30" text="端口:"/>
<mx:Button id="connectBtn" x="392" y="30" label="连接"/>
</mx:Application>
MySocketClient.as
package com.test
{
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.events.SecurityErrorEvent;
import flash.net.Socket;
import flash.system.Security;
import mx.controls.Alert;
public class MySocketClient
{
private var socket:Socket = null;
private var connected:Boolean = false;
public function MySocketClient()
{
socket = new Socket();
socket.addEventListener(Event.CONNECT, function(event:Event):void{
connected = true;
trace("connect: " + event);
});
socket.addEventListener(Event.CLOSE, function(event:Event):void {
trace("closeHandler: " + event);
});
socket.addEventListener(ProgressEvent.SOCKET_DATA, function(event:ProgressEvent):void {
trace("socketDataHandler: " + event);
});
socket.addEventListener(IOErrorEvent.IO_ERROR, function(event:IOErrorEvent):void{
trace("ioErrorHandler: " + event);
});
socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(event:SecurityErrorEvent):void{
Alert.show(event.toString());
});
}
public function connect(host:String, port:int):void{
Security.loadPolicyFile("xmlsocket://127.0.0.1:843");
socket.connect(host, port);
}
public function isConnected():Boolean{
return socket.connected ? true : false;
}
public function send(msg:String):void{
socket.writeUTFBytes(msg + "\n");
socket.flush();
}
public function readReady():uint{
return socket.bytesAvailable;
}
public function read():String{
return socket.readUTFBytes(socket.bytesAvailable);
}
}
}
今天上支付宝买东西时出现“您是支付宝数字证书用户,本台电脑上已安装数字证书,请使用本电脑的管理员用户登录。”
问题详情:
您是支付宝数字证书用户,本台电脑上已安装数字证书,请使用本电脑的管理员用户登录。
本台电脑上已安装数字证书,但是因为某些原因(如:您未使用电脑管理员登录),无法读取证书信息,请注销或重启电脑后以管理员账户登录!点此查看帮助
自己分析了一下,最近重装了系统,系统和以前是同一张光盘安装的,IE7当然也是一样的,想了半天还是没发现什么问题。在网上找了相关资料,别人说的我都按做了,还是没用,郁闷之极!
解决问题:
问题还是出在IE7上面,重新安装个“MultipleIES”,此工具可以提供多个IE版本,我们只用装IE6就可以了,下载请见我的文章“MultipleIEs - 网页设计必备工具”,安装完成之后打开IE6进入支付宝,重新支付,OK
问题总结:
问题解决了,但是出现这种问题是IE7的错呢还是支付宝的错呢,偶也不清楚,根据自己的经验来判断应该是IE7缓存了页面内容造成的,但是之前的IE7又可以,很是郁闷。
方法1:如果Administrator帐户可以登陆的话可以重启按F8进入安全模式,安全模式可以选择用户名的,登陆Administrator后在控制面板的用户帐户中选择相应帐户,然后修改密码,
方法2(比较强悍):重启按F8,进入带命令行的安全模式,选择Administrator登陆,输入命令
net user 用户名 密码 /add
如果还没有权限就再设置一下管理员组
net localgroup administrators 用户名 /add