Little Question
Blitz3D Forums/Blitz3D Beginners Area/Little Question
| ||
| Okay before I add more on to my chat program I wanted to know is there just a way to Clear the input thing off the screen without clearing the messages that have been sent? I don't want to go back and rescript a Whole nother window to send it to the chat window if I aint got to.Any and all help is appreciated thanks :D |
| ||
| Of course, I would think you would simply need to store each line of text in a 'type' for instance, displaying when and if you needed to. |
| ||
| Use an array to record the messages or write to a file. |
| ||
| Thanks guys will try both I was thinking of trying something like u both said. |
| ||
Type MessageList
Field Message$
End Type
Function AddMessage(Message$)
M.MessageList=new MessageList
M\Message=Message
Count=0
For M.MessageList=each MessageList
Count=Count+1
next
if Count>20 then
M.MessageList=first MessageList
delete M
endif
End Function
Function DrawMessage()
For M.MessageList=each MessageList
Text 0,graphicsheight()-Count*20,M\Message
Next
End Function
In your main loop:
Repeat
;do whatever you normally do.
;When a message is received use AddMessage("pass string here")
cls
color 255,255,255
DrawMessage()
flip
Until KeyDown(1)
something like that perhaps... |
| ||
| That was quick matty o.o I'll try it thanks. |
| ||
| Ya it don't work it just makes none of it work XD. I'm about to try something myself. |
| ||
| I found a way to fix my problem but now I need to know when I have the input it makes the Line that I inputed move down a space is there a way to get rid of that? I was thinking of like Reseting the X of the input to 1,1 by using Write instead of print Then everytime so on it'd +the x by 1 Would this kinda work? After this is fixed thats all I need thanks guys. |
| ||
| I believe using the Locate command could help you here. http://www.blitzbasic.com/b3ddocs/command.php?name=Locate&ref=2d_a-z |
| ||
C = "0" Function TextMove() Y="1" If C = "1" Then Y= Y+1 End Function I tried this and just to call the function but It eventually adds up to were it skips lines and stuff :(. |
| ||
| "C" will always be zero in the function you've posted - firstly because it is a local variable inside TextMove() and also because in that code snippet there you've done nothing to cause C to change. |
| ||
Y = 1 Y = Y+1 Text 1,Y,Name$ + " Says:" + Message$,False,False See this makes it do this: line 1.Prints Line 2.Prints Line 3.skip Line 4.skip Line 5.Prints Any ideas? |
| ||
| That small code snipped will not do the steps you've just outlined. Post the rest of your code and we may be able to help. I think you'll find the code I posted earlier does work - when you apply it correctly. |
| ||
See no I think you read my statement wrong.Thats what it IS doing but not what I want it to do also I will send my code
;-more boxing----;
Graphics 300,300
AppTitle "Revenge studios Chatroom"
;---boxing----------------------;
;---Boxing out Login stuff---;
Name$=Input("Name:")
;---Boxing out stuff---;
;-xx-xx--Boxing out Joining stuff--xx-xx-
Ip$="192.168.0.100"
GameName$="Revenge Studios"
Join=JoinNetGame(GameName$,Ip$)
Select Join
Case 1
Print ("Joined Revenge Studios Chatroom Succesfully")
Player$=CreateNetPlayer(Name$)
Cls
Case 2
Print ("Failed to join")
WaitKey()
End
End Select
;-xx-xx--Boxing out Joining stuff--xx-xx-
While 1
;--Sending message--------;
Color 0,0,0
Message$=Input()
SendNetMsg(1,Message$,Name$,0,1)
;--Sending message--------;
;--Reciving---;
If RecvNetMsg() Then
msgType$=NetMsgType()
EndIf
If msgType$>0 And msgType$<100 Then
msgFrom$=NetMsgFrom()
msgData$=NetMsgData$()
EndIf
Color 255,0,0
Y$ = "1"
Text 1,Y$,Name$ + " Says:" + Message$,False,False
Y$ = Y$ + 1
;--Reciving---;
Wend
Here if anyone copies it or wants to use it go on ahead like I give a damn lol |
| ||
| I have fixed the entire thing will a couple of test. Thanks for all help and feedback :). |