Avatar billede uzziuz Nybegynder
20. august 2006 - 21:52 Der er 20 kommentarer

Online 3D chat

Hej,

Jeg har nu arbejdet længe på chatten her og kan ikke komme videre jeg har lavet et system hvor man kan rykke rundt med en figur men man kan ikke se hinanden på chatten hvordan kan jeg lave det...?

P.S. er Newbie til Javascript og jeg har kodet det andet i php så noget kode tak!

<?
session_start();
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "  [url]http://www.w3.org/TR/html4/loose.dtd[/url]"> 
<html>
<head>
<title>HighTech-Huset</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
#board {
    border: 0px solid #000;
    border-collapse: collapse;
}
#board td {
    width: 60px;
    height: 60px;
    border:0px solid #AAA;
    text-align: center;
    vertical-align: middle;
}
body {
    background-image: url();
    background-color: #000000;
}
body,td,th {
    color: #FFFFFF;
}
</style>
<?php
if(isset($_SESSION['logget_ind'])){
   
    $db = mysql_connect("Mysqlhost", "mysqluser", "mysqlkode");
mysql_select_db("mysqldatabase",$db);
   
$get_toj = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$_SESSION[brugernavn]'");
$load = mysql_fetch_array($get_toj);

$toj = $load['toj'];
    ?>
<script type="text/javascript">
var last_field = null;
function moveElement(idx) {
    obj = document.getElementById(idx);
    if (last_field != null) last_field.innerHTML = ' ';
    document.getElementById(idx).innerHTML = '<div><img src=" <?php echo "$toj"; ?> "><br><br></div>';
    last_field = obj;
}
</script>
</head>
<body>
<table width="500" height="390" border="0" align="center" background="gfx/rooms/stuen.JPG" id="board">
    <tr>
        <td width="58" height="384" id="1_1" onClick="moveElement(this.id)"></td>
        <td width="58" id="1_2" onClick="moveElement(this.id)"></td>
        <td width="58" id="1_3" onClick="moveElement(this.id)"></td>
        <td width="58" id="1_4" onClick="moveElement(this.id)"></td>
        <td width="58" id="1_5" onClick="moveElement(this.id)"></td>
        <td width="58" id="1_6" onClick="moveElement(this.id)"></td>
        <td width="58" id="1_7" onClick="moveElement(this.id)"></td>
        <td width="58" id="1_8" onClick="moveElement(this.id)"></td>
    </tr>
    <tr>
      <td height="364" id="2_1" onClick="moveElement(this.id)"></td>
      <td id="2_2" onClick="moveElement(this.id)"></td>
      <td id="2_3" onClick="moveElement(this.id)"></td>
      <td id="2_4" onClick="moveElement(this.id)"></td>
      <td id="2_5" onClick="moveElement(this.id)"></td>
      <td id="2_6" onClick="moveElement(this.id)"></td>
      <td id="2_7" onClick="moveElement(this.id)"></td>
      <td id="2_8" onClick="moveElement(this.id)"></td>
    </tr>
    <tr>
      <td height="364" id="3_1" onClick="moveElement(this.id)"></td>
      <td id="3_2" onClick="moveElement(this.id)"></td>
      <td id="3_3" onClick="moveElement(this.id)"></td>
      <td id="3_4" onClick="moveElement(this.id)"></td>
      <td id="3_5" onClick="moveElement(this.id)"></td>
      <td id="3_6" onClick="moveElement(this.id)"></td>
      <td id="3_7" onClick="moveElement(this.id)"></td>
      <td id="3_8" onClick="moveElement(this.id)"></td>
    </tr>
    <tr>
      <td height="364" id="4_1" onClick="moveElement(this.id)"></td>
      <td id="4_2" onClick="moveElement(this.id)"></td>
      <td id="4_3" onClick="moveElement(this.id)"></td>
      <td id="4_4" onClick="moveElement(this.id)"></td>
      <td id="4_5" onClick="moveElement(this.id)"></td>
      <td id="4_6" onClick="moveElement(this.id)"></td>
      <td id="4_7" onClick="moveElement(this.id)"></td>
      <td id="4_8" onClick="moveElement(this.id)"></td>
    </tr>
    <tr>
      <td height="364" id="5_1" onClick="moveElement(this.id)"></td>
      <td id="5_2" onClick="moveElement(this.id)"></td>
      <td id="5_3" onClick="moveElement(this.id)"></td>
      <td id="5_4" onClick="moveElement(this.id)"></td>
      <td id="5_5" onClick="moveElement(this.id)"></td>
      <td id="5_6" onClick="moveElement(this.id)"></td>
      <td id="5_7" onClick="moveElement(this.id)"></td>
      <td id="5_8" onClick="moveElement(this.id)"></td>
    </tr>
</table>
<script type="text/javascript">moveElement('1_1');</script>
<?
} else{
echo "Du skal være logget ind for at kunne chatte!";
}
?>
</body>
</html>
Avatar billede webudvikleren Nybegynder
20. august 2006 - 22:13 #1
Så skal du tjekke om hvem der står på de forskellige felter.

Det er en meget dum idé at lave disse chatte med tabeller.
Avatar billede elskermad.dk Nybegynder
20. august 2006 - 23:37 #2
det kan nu godt lade sig gøre med tabeller:

http://chat.alvision.dk
Avatar billede elskermad.dk Nybegynder
20. august 2006 - 23:38 #3
et id må i øvrigt ikke starte med andet end et bogstav
Avatar billede webudvikleren Nybegynder
20. august 2006 - 23:40 #4
Ja, det siger jeg hellere ikke ;) Siger bare det er en dum løsning.

Det vil hellere ikke blive til noget rigtigt, når det ikke er programmeret i et ordenligt programmeringssprog, eksempelvis java eller flash.

Javascript er nemt, men det har dårlige foredele. Det siger klik hver gang man trykker hen på et felt, fordi dne skal reloade en side.

Og hvis du skal finde positionerne på brugerene, så kommer serveren til at blive overbelastet, med mindre du laver en reload hvert 15 sekund, men det jo ikke rigtigt noget ved.

Skal det være real-time 3dchat, så kig på sockets og flash (XMLSockets) eller java mulighederne.

Bare et hint, ikke for at nedgøre dig ;-)
Avatar billede elskermad.dk Nybegynder
20. august 2006 - 23:44 #5
hehe der skal vist mere til at nedgøre mig ;o) ville bare lige porientere (hvordan staves det?) at det kan lade sig gøre! har hvert fald leget lidt med det i dag...

nat nat!
Avatar billede mclemens Nybegynder
21. august 2006 - 00:10 #6
[ Javascript er nemt, men det har dårlige foredele. Det siger klik hver gang man trykker hen på et felt, fordi dne skal reloade en side. ] Afhængig af on det er et link man trykker på - altså om siden opdateres eller om det er en ajax funktion der henter en konfigurations datastreng til check af position ved klik og opdaterer siden via et javascriptet via dom uden reload af siden ... så ikke nødvendigvis en klik lyd hvis man bygger det op på en anden måde :o)


[ Og hvis du skal finde positionerne på brugerene, så kommer serveren til at blive overbelastet, med mindre du laver en reload hvert 15 sekund, men det jo ikke rigtigt noget ved. ] Og ved java eller flash skal du ikke have server validering på placeringen af objecterne og overførsel af beskederne til dem der chatter?
...


[ Skal det være real-time 3dchat, så kig på sockets og flash (XMLSockets) eller java mulighederne. ] Kan du forklare hvorfor det belaster mindre eller kaste et link til en artikel der forklarer hvordan man undgår at forespørge serveren for at få at vide om en position er optaget og om der er nye beskeder ? (indrømmer dog at det skal være bygget andetledes op, men kan ikke se at det skulle være bedre end meget små tekstbidder indeholdende beskederne splittet op i et xml document som hentes via. javascript's ajax ... med serverside validering selvfølgelig, men det skal jo til i alle systemer)


[ porientere (hvordan staves det?) ] Tror det er pointere
... men når vi er i et it forum lyder det helt forkert (tænk c++) ... Nat, nat ;o)
Avatar billede webudvikleren Nybegynder
21. august 2006 - 00:15 #7
ajax er en god mulighed, ja.

når du skal hente positionerne med brugerene, skal du jo hente fra mysqlen, og det kan godt belaste meget trafik.

bruger du sockets, og du 'klikker' rundt, så kan du forklare serveren at det sker med det samme, og så ved alle brugerne på klienten har brugeren har rykket sin position.
Avatar billede mclemens Nybegynder
21. august 2006 - 00:39 #8
Ok, lyder smart nok med det sockets, skal nok have kigget på det (hvis jeg en dag vil lege med en chat) ... troede bare at man ville have et hul med, at en bruger kan placere sin figur, hvor han har lyst til - hvis nu man ikke checkede brugerens kommando igennem via. opkald til en database ...

[ så kan du forklare serveren at det sker med det samme, ] D.v.s. at man så kan have serveren til at huske det hele i hukommelsen så det blot kan rettes direkte uden at den skal hive en database frem, validere og rette hver gang - og at felterne istedet rettes i serverens hukommelse (der spares opkaldet til databasen) ?

... Undskyld jeg spørger dumt, men havde ikke hørt om det med sockets før - er det en speciel flash eller java dims ... og har du evt. et link ?


...

...

((( M.h.t. det med at klikke rundt med ens figur på brættet via js og ajax ville jeg nok lave en js request på http://ww w.domæne.dk/cpos.php via post/get med pos=12 hvor 12 er den position man ønsker og så returnerer mysql sandt eller falsk til js for flytning af position ... og evt. en overførsel af nuværende positioner over til en textfil med brugernes id defineringer og felt placeringer (når en bruger havde flyttet sig i mysqæ databasen) som så afsendes via en ajax positions refresh hvert 20-30sek ... så php kunne nøjes med at sende text strengen i txt filen som man så parsede - og så skulle man kun belaste serveren ved flytning af figurer eller logout af en figur... (og så nok cronjob der kalder et script der checker på de brugere der står i mysql tabellen og fjerner dem der ikke selv har logget af siden (mysql tabellen) ... og så opdaterer txt filen for hver 5 minutter ca.) ... blot lidt "meget" rodede overvejelser jeg ville lave / have lavet - ikke sat op i system ... men synes det sockets lyder mere interressant...)))
Avatar billede mclemens Nybegynder
21. august 2006 - 00:40 #9
[ ... Undskyld jeg spørger dumt, men havde ikke hørt om det med sockets før - er det en speciel flash eller java dims ... og har du evt. et link ? ] Glem den del, det er jo ikke mit spørgsmål, jeg opretter et hvis jeg får behovet ... Tak for hintet :o)
Avatar billede arne_v Ekspert
21. august 2006 - 01:29 #10
den store fordel ved

flash/java--(socket)--socket server

fremfor

HTML/JS--(HTTP)--socket server

er at man kan bruge push fremfor poll
Avatar billede uzziuz Nybegynder
21. august 2006 - 06:51 #11
Jeg ville bare have hjælp jeg er ligeglad med trafikken til at starte på...!

Please hjælp!
Avatar billede elskermad.dk Nybegynder
21. august 2006 - 07:58 #12
tjek mit link, der kan du i kildekoden se hvordan man kan gøre det (siger ikke det er nogen speciel god måde at gøre det på, men det er funktionsdygtigt)
Avatar billede uzziuz Nybegynder
21. august 2006 - 16:50 #13
Jeg kan ikke komme ind der er kode på lol!
Avatar billede elskermad.dk Nybegynder
22. august 2006 - 11:47 #14
det var der ikke sidst hvis du havde tjekket linket med det samme - du skal bare skrive tallet 1 og trykke login
Avatar billede uzziuz Nybegynder
22. august 2006 - 14:09 #15
Må jeg få kildekoden...?

Eller filerne...!
Avatar billede elskermad.dk Nybegynder
22. august 2006 - 23:34 #16
da det jo er javascript kan du "hugge" dem fra siden
Avatar billede uzziuz Nybegynder
23. august 2006 - 06:49 #17
Jeg mangler disse filer:


    <iframe id='pladskontrol' name='pladskontrol' src='/iframe/pladskontrol.php?rum=1&plads=a6' class='iframe'></iframe>
    <iframe id='optaget' name='optaget' src='/iframe/optaget.php?rum=1' class='iframe'></iframe>
    <iframe id='tekst' name='tekst' src='/iframe/tekst.php?rum=1' class='iframe'></iframe>
    <iframe id='post' name='post' src='/iframe/tom.php' class='iframe'></iframe>
Avatar billede elskermad.dk Nybegynder
23. august 2006 - 10:32 #18
dem kan du jo også hente ;)
Avatar billede uzziuz Nybegynder
23. august 2006 - 15:13 #19
Hvor...?
Avatar billede olebole Juniormester
23. august 2006 - 15:22 #20
<ole>

Med al respekt: At rode med chats kræver en hel del viden/erfaring. Hvis du ikke kan hente en kildekode fra en webside, bør du måske starte et andet sted  :)

/mvh
</bole>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester