GGC licence



Connexion

Récupérer mon mot de passe

Derniers sujets
» Lancer des jeux gravés sur wii SANS PUCES !!!
par djiki248 Dim 29 Nov - 16:53

» [LUA] Faire un mode 2 joueurs
par Anonymous Lun 16 Nov - 19:01

» [VERSION] MyWindows Fusion 3.XX.2.1 Beta Test
par cocotier000 Mer 28 Oct - 18:13

» Salut tout le monde!
par Wise01 Mer 18 Fév - 14:25

» Des vidéos sur votre PSP, grâce à votre PSP !!!
par kasuke5 Dim 15 Fév - 14:27

» [FUSION] 1er Video
par naki75 Dim 8 Fév - 19:24

» Librairie : Texte centré
par naki75 Dim 8 Fév - 19:15

» Librairie : Lire video MyV
par naki75 Dim 8 Fév - 19:03

» [projet]myprog
par binot Mer 21 Jan - 22:21

Mars 2010
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
293031    

Calendrier Calendrier


[LUA] Faire un mode 2 joueurs

Poster un nouveau sujet   Répondre au sujet

Voir le sujet précédent Voir le sujet suivant Aller en bas

[LUA] Faire un mode 2 joueurs

Message  Lordvisaris le Sam 3 Jan - 16:30

Bonjour a tous, ayant dans la dernière
version de rpg creator intégré un mode ad-hoc, je vais vous expliquer
par quelle systeme se mode est fait, tout d'abord voila le code complet
:
Il faut savoir que ce code s'utilise dans un contexte avec:
herox et heroy : coordonnées x et y du joueur
playername : nom du joueur
statut_marco : correspond au statut d'affichage (voir code heros.lua)
Le jeu est definis par une signature de 7 caractére exemple : 1589638

  1. function lancement_adhoc() ----- Lancement de l'adhoc
  2. Adhoc.init() ---- On lance l'ad-hoc
  3. screen:print(10,240,"Preparation au mode ad-hoc") ---- On l'écrit
  4. Adhoc.connect() ---- On se connecte
  5. if Adhoc.getState() == 1 then ------ si on a reussi a ce connecté
  6. screen:print(10,240,"Ad-hoc connecte, lancement des joueurs") ---- On l'écrit
  7. file = io.open("GAME/SYSTEM_NUM/signature.bin", "r") ----- on lit sa signature numérique
  8. signature = file:read() ----Lecture
  9. file:close()
  10. gestion() ----- On lance le mode eux joueurs
  11. end
  12. end


  13. function envoye() ----- Envoye des données
  14. if pad ~= oldpad then ---- Si on appuye sur une touche donc sis sa change
  15. Adhoc.send(signature.."X"..herox) ----Envoie coordonnée x
  16. Adhoc.send(signature.."Y"..heroy) ---- Envoie coordonnée y
  17. Adhoc.send(signature.."P"..statut_marco) ---- envoie statut d'affichage
  18. Adhoc.send(signature.."N"..playername) ---- Envoie du nom
  19. end end

  20. function recevoir() ------ Recois les données
  21. if Adhoc.recv() ~= nil then ------ Si on recoit quelque chose
  22. signature_amis = string.sub(Adhoc.recv(),0,7) ----- La signature devant
  23. if signature_amis == signature then ------ Si c'est le meme jeu

  24. if string.sub(Adhoc.recv(),7,Cool == "X" then----- COORDONNE X
  25. hero2x = string.sub(Adhoc.recv(),8,string.len())
  26. end

  27. if string.sub(Adhoc.recv(),7,Cool == "Y" then----- COORDONNE Y
  28. hero2y = string.sub(Adhoc.recv(),8,string.len())
  29. end

  30. if string.sub(Adhoc.recv(),7,Cool == "P" then----- Affichage
  31. hero2pos = string.sub(Adhoc.recv(),8,string.len())
  32. end

  33. if string.sub(Adhoc.recv(),7,Cool == "N" then----- Nom
  34. hero2nom = string.sub(Adhoc.recv(),8,string.len())
  35. end

  36. else
  37. Adhoc.term() ---- Si ce n'est pas le meme jeu, on coupe le mode ad-hoc
  38. end end



  39. function affichage_adhoc() ----- Affiche les données recus
  40. if hero2x ~= nil then ----- Si on a recu les bonnes données
  41. larg = marco:width() / 3 ---Largeur
  42. hau = marco:height() /4---Hauteur
  43. screen:print(hero2x-15,hero2y-20,hero2nom)
  44. -----------------------------------------------------------------DANS CETTE PARTIE ON AFFICHE LE MEME PERSO QUE LE HEROS
  45. if hero2pos == 1 then
  46. screen:blit(hero2x,hero2y,marco,larg,hau,larg,hau)
  47. end
  48. if hero2pos == 2 then
  49. screen:blit(hero2x,hero2y,marco,larg,hau,larg,hau)
  50. end
  51. if hero2pos == 3 then
  52. screen:blit(hero2x,hero2y,marco,larg,3*hau,larg,hau)
  53. end
  54. if hero2pos == 4 then
  55. screen:blit(hero2x,hero2y,marco,larg,0,larg,hau)
  56. end
  57. if hero2pos == 5 then
  58. screen:blit(hero2x,hero2y,marco,larg,2*hau,larg,hau)
  59. end end end


  60. function gestion() ------ Gere le systeme d'affichage, d'envoie, et de reception
  61. screen:print(10,240,"Vous jouez en mode 2 joueurs") ------ On montre que l'on joue à deux
  62. affichage_adhoc() ------ On affiche le copain
  63. recevoir() -----On recoit
  64. envoye() ------ on envoye
  65. end









j'espere que ce script vous aura servis et que plein de jeu en multi apparaitront

_________________
Soutenez la ggc et nos projets en cliquant sur les pubs dans la zone spéciale : :
http://ggc-forum.8forum.net/Accueil-h2.htm

Lordvisaris
Dieu supreme du forum
Dieu supreme du forum

Messages: 757
Date d'inscription: 19/07/2008
Age: 17
Localisation: Sur le fofo

Voir le profil de l'utilisateur http://ggc-forum.8forum.net

Revenir en haut Aller en bas

Re: [LUA] Faire un mode 2 joueurs

Message  Alexfren le Lun 16 Nov - 19:01

Salut,

Merci pour ce tuto mais j'aimerais bien qu'tu m'expliques 2-3 truks.

1) Ce script ce place à quel niveau dans le code, faut-il créer une nouvelle page en .lua et faire un dofile ?

2) Faut-il rajouter un dofile ? car ayant testé, dans mon exemple ça faisait :

script.lua =

Si t'appuie sur O ca dofile("adhoc.lua") (en gros ton script mais modifié)
En faisant ça, le Wlan ne clignotait pas, et ecran noir sur les 2 PSP, pas de messages d'erreur.

Si t'appuie sur X ca dofile("jeu.lua") (ici pas de problème.)

Le blème c'est donc :

Ton script, j'l'ai mis dans un fichier appelé adhoc.lua
et quand les 2 psp acceder à ce adhoc.lua et bah rien.

Voilà j'espere avoir été assez clair :'

J'attend ta reponce avec impatience =)

Alexfren
Invité


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Poster un nouveau sujet   Répondre au sujet
Permission de ce forum:
Vous pouvez répondre aux sujets dans ce forum