figuren steuern in b3d mit button

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

super_castle

Betreff: figuren steuern in b3d mit button

BeitragDi, Feb 28, 2006 20:35
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo, wie ich daten an b3d übermitteln zwecks steuerung von figuren.
ich habe in purebasic ein button-fenster mit button "runter" "rauf" usw.

nun möchte ich mit b3d die daten zum steuern der figuren empfangen .

mfg castle

Fuchsi

BeitragDi, Feb 28, 2006 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Meines Wissens nach geht das überhaupt nicht. Falls ich mich irre (sogar ich irre mich manchmal Very Happy ) dann klärt mich bitte auf.
 

Dreamora

BeitragDi, Feb 28, 2006 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Könntest du dein Problem bitte sinnvoll formulieren?
Verstehe nur Bahnhof weil die Wortfolge gegen 0 Sinn macht. Wenn D nicht deine Muttersprache ist, so wäre ein Board in deiner Muttersprache vielleicht besser, damit man dein Problem überhaupt verstehen kann um dir helfen zu können ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Fuchsi

BeitragDi, Feb 28, 2006 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, sogar ich verstehe es nicht ! (Obwohl ich sonst alles verstehe Very Happy )
 

sonicfire

BeitragDi, Feb 28, 2006 21:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, man versteht schon, was er meint , nur ist das echt saumäßig formuliert *hust*.

Er will halt einfach via PB Programm Daten an ein B3D Programm schicken. Aber ich wüsste auch nicht, wie das gehen soll...
~sonic
 

super_castle

BeitragDi, Feb 28, 2006 22:27
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo, der text klingt wohl ein bisschen undeutlich. einige buchstaben wurden nicht gedruckt.
habe das problem gelöst.
ich habe mit purebasic eine dll erstellt (mit purebasic stelle ich ein windowfenster mit steuerungstasten(richtungen usw) als dll-datei her. diese dll rufe ich von b3d auf. nun kann ich vom purebasicfenster und den richtungstasten die figur im b3d-fenster beeinflussen und die daten gehen über funk zum richtigen roboter.

castle
  • Zuletzt bearbeitet von super_castle am Mi, März 01, 2006 18:43, insgesamt einmal bearbeitet
 

sonicfire

BeitragDi, Feb 28, 2006 23:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur aus Neugierde - zu welchem Zweck? Smile
~sonic

Markus2

BeitragMi, März 01, 2006 13:33
Antworten mit Zitat
Benutzer-Profile anzeigen
@super_castle

ich habe mir mal sowas ähnliches gemacht ,
über TCP Protokoll kann man das z.B. auch machen Wink
 

super_castle

BeitragMi, März 01, 2006 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur aus Neugierde - zu welchem Zweck?...

ich habe einen roboter mit sensoren, diese sensordaten sollen zu b3d gelangen, weil ich dort diesen gleichen robby als modell laufen habe.

die daten vom echten robby sollen am modell als strahlen und zahlen dargestellt werden.
wenn die ir-diode vom robby einen abstand von einem gegenstand hat, soll dieser abstand im b3d-robby als strahl mit der länge dargestellt werden.
wenn der richtige robby die compassdaten eindreht, soll auch das modell in die gleiche richtung zeigen und die daten anzeigen.
auch den raum wo der echte robby drin fährt, habe ich in b3d als raum dargestellt, mit den hindernissen wie sie auch im echten raum stehen.

mit den steuertasten steuere ich über funk den richtigen robby, der b3d-robby soll darauf aber auch reagieren.
 

super_castle

BeitragMi, März 01, 2006 18:41
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe mir mal sowas ähnliches gemacht ,
über TCP Protokoll kann man das z.B. auch machen...

hallo, erklär mir das einmal für b3d ausführlich

Markus2

BeitragMi, März 01, 2006 19:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieht dann so aus ...

Über TCP schickst du einen Befehl und in BB3D führst du die Funktion dafür aus .
Parameter sind dann einfach durch Komma getrennt .

z.B.
SETMOUSE:320,240

Code: [AUSKLAPPEN]

;TCP

Global TCPServer
Global TCPStream
Global TCPInput$
Global TCPInputLast$
Dim TCPInputP$(128)

TCPServer=CreateTCPServer(8080)
TCPTimeouts 60000,0 ;1 Minute before TimeOut and connection close :-) Allways send to Server NOP CRLF

.MainLoop
 
While Not KeyHit(1)
 
 UpdateWorld
 RenderWorld

 TCPRemoteInput

 Flip

Wend
end



Code: [AUSKLAPPEN]

Function TCPRemoteInput()

 ;----------------------------------------------------------------------------- Waiting Connect , Connect , Read Input from TCP Stream

 ;Read a Line from TCP until crlf come :-)

 Local r$

 TCPInput$=""

 If TCPServer = 0 Then
 
  Text 10,10+9*fonty,"Blitz Server not started !?"

 Else
  If TCPStream Then
   Text 10,10+9*fonty,"IP "+DottedIP$(TCPStreamIP(TCPStream))+" READ STREAM (WAIT UNTIL CRLF)"
   ;Flip
   If Not Eof(TCPStream)
    r$=ReadLine(TCPStream) ;Here it waits until incomming crlf
    If Len(r$)>0
     TCPInput=TCPInput+r$
     TCPInputLast=TCPInput
     TCPInput=TCPInput+Chr$(13)
    EndIf
   EndIf
   
   If Eof(TCPStream) Then CloseTCPStream TCPStream:TCPStream=0
   
  Else
   TCPStream=AcceptTCPStream(TCPServer)
   Text 10,10+9*fonty,"Server waiting for connect"
  EndIf
 EndIf

 ;----------------------------------------------------------------------------- Stream to Functions :-)

 otext 10,10+10*fonty,"TCPInputLast "+TCPInputLast$

 Local c$,o$,x,x1,x2,p,i
 c$=""
 o$=""

 ;---------------------------------------------------------

 ;Command
 x=Instr(TCPInput,":")
 If x>1 Then
  c$=Mid(TCPInput,1,x-1)
  c$=Upper(c$)
 EndIf

 ;---------------------------------------------------------

 ;Clear Parameter
 p=0
 For i=1 To 128
  TCPInputP(i)=""
 Next

 ;Search for Parameters
 x2=0
 If Len(TCPInput)>x Then
  x1=x+1
  Repeat
   x2=Instr(TCPInput,",",x1)
   If x2=0 Then x2=Instr(TCPInput,Chr(13),x1) ;or to End
   If x2>x1 Then
    p=p+1
    TCPInputP(p)=Mid(TCPInput,x1,x2-x1)
    x1=x2+1
   EndIf
   If x2=Len(TCPInput) Then x2=0 ;no endless loop ;-)
  Until x2=0
 EndIf

 ;------------------------------------------------------------> COMMADS <---

.TCPCommands

 ;Functions
 If Len(c$)>0 Then
 Select c$
 Case "SETMOUSE","MOUSEXY","MOUSE"
  ;RSetMouseXY TCPInputP(1),TCPInputP(2)
  o$=c$
 Case "CAMERAMOVE","MOVECAMERA"
  ;RSetCameraMove TCPInputP(1),TCPInputP(2),TCPInputP(3)
  o$=c$
 Case "CAMERATURN","TURNCAMERA"
  ;RSetCameraTurn TCPInputP(1),TCPInputP(2),TCPInputP(3)
  o$=c$
 Case "CAMERAROTATE"
  ;RSetCameraRotate TCPInputP(1),TCPInputP(2),TCPInputP(3)
  o$=c$
 Case "HELP"
  o$="Sorry no Help there :-("
 Case "NOP"
  o$="NOP"
 Default
  o$="UNKNOWN COMMAND "+c$
 End Select
 EndIf ;Command >0

 ;---------------------------------------------------------

 ;Output what i have done :-)

 If Len(o$)>0 Then o$=o$+":"

 If p>0 Then
  For i=1 To p
   o$=o$+TCPInputP(i)
   If i<p Then o$=o$+","
  Next
 EndIf

 If Len(o$)>0 Then
    If  TCPStream Then WriteLine  TCPStream,o$
 EndIf
 
End Function

;-------------------------------------------------------------

 

super_castle

BeitragMi, März 01, 2006 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo, ich empfange die daten über die serielle schnittstelle zum purebasicfenster und dieses purebasicfenster soll die daten auf dem gleichen schirm zum b3d fenster schicken...wie geht das mit deinem programm,
SETMOUSE:320,240

Markus2

BeitragDo, März 02, 2006 1:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn BB läuft und den Port 8080 auf hat dann einfach
zu 127.0.0.1 connecten mit PureBasic und dann einfach den Befehl
bzw. die Zeile schicken .

SETMOUSE:320,240
oder
SETMOUSE:320,240CRLF <- weiß ich jetzt nicht genau

kann sein das du 1310 als ASCII an die Zeile hängen mußt .

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group