begin process at 2010 02 10 00:16:47
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > SPORE-LIKE DEMO

SPORE-LIKE DEMO


 Information sur la source

Note :
Aucune note
Catégorie :Jeux Classé sous :spore, creature, game Niveau :Initié Date de création :13/02/2009 Vu / téléchargé :2 425 / 275

Auteur : BlackWizzard

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Hello,
Depuis que j'ai téléchargé le jeu Spore sur mon Ipod Nano, la version 2D super sympa et simpliste, je me suis mis en tête de reprogrammer une version du jeu en Flash.

Voici donc une petite demo, coté en quelques heures ces 3 derniers jours.
Le principe:
Je vx que les créatures soient définie par un Object, que le choix de leur taille, forme et propriétés soient illimité.
Si je souhaite créer une créature à 5 yeux donc 2 sur les fesses et un sur le coté droit, je vx que ce soit possible simplement en modifiant mon Object, et que le moteur du jeu se charge du reste: Création, IA, ...
Je souhaite aussi qu'il y ai des prédateurs, des proies, et que les créatures puissent être les deux à la fois. Je vx aussi que les prédateurs chassent les proies et puisse les manger/tuer, donc une gestion des points de vie.

Pour l'instant, pas de soucis dans le code :)
J'arrive à des créatures vraiment sympa, dont dans cette demo:
- Ma créature, celle que l'on dirige au clavier (touches directionnelles) qui est une sorte de serpent, avec des ecailles, 5 yeux, 2 cornes, un dart
- Un predateur, une espece de requin prehistorique avec des epines sur le coté et 3 yeux. Evitez son champs de vision, sinon il vus chassera!
- Une espece d'oursin, il ne se deplace pas, mais il pique tres fort! Surtout ne pas le toucher.
- Un espece de grosse boule noir à corne. Elle ne nage pas, mais si vous passez à coté, elle vous foncera dessus pour vous embrocher.
- Des petites proies, que toutes les créatures tentent de manger, dont vous, qui donne de l'energie (donc de la vie en plus).

C'est pas un jeu complet, juste une demo du moteur de jeu.

Jouez avec les Objects qui définissent les créatures dans le fichier sporeScript.as pour creer vos propres créatures!


 Conclusion

Je n'ai pas touché à flash depuis tres tres tres longtemps, alors excusez si mes techniques et syntaxes datent de plusieurs années.
Je suis tjour à AS2, je n'ai pas appris l'AS3.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture LINECHART / AREACHART : COMPOSANT AS2, SOURCE XML, STYLE PAR...
Source avec Zip COURS FLASH: COMMUNICATION FLASH/PHP
Source avec Zip 3D TEMPS REEL EN AS2
Source avec Zip Source avec une capture CLASS PIECHART: CODE ET COURS (8 PAGES FLASHPAPER/WORD)
Source avec Zip 3 COURS COMPLETS FORMAT FLASHPAPER: LES BASES + LE XML + MIS...

 Sources de la même categorie

Source avec Zip Source avec une capture JEU DE TIR par gabha
Source avec Zip Source avec une capture ROULETTE SIMPLE TYPE CASINO par jeanbat51
Source avec Zip MOTEUR PLATEFORME 2D AVEC ITEM TEL QUE RESSORT, ÉCHELLE... (... par SamouraiPoulet
Source avec Zip BASE JEUX COMBAT par coolninja19
Source avec Zip LAN CHESS, JEU D'ÉCHEC EN RÉSEAU par darksoul

 Sources en rapport avec celle ci

TETRIS::EXPLICATION par cedricici
Source avec Zip JEUX FLASH ENTIER par ferber

Commentaires et avis

Commentaire de BlackWizzard le 14/02/2009 16:59:03 administrateur CS

Un site dedié au jeu est en cours de création; Creation d'une cellule, au fur et à mesure des niveaux, on gagne un nombre de mutation, à utiliser comme on souhaite dans l'éditeur pour faire evoluer sa creature.
Il y a pres d'une 50aine de variables differentes pouvant être modifiées, pour creer des combinaisons uniques de formes, de couleurs, de propriétés.
Stockages des créatures en DB.
Mode arene pour faire combattre sa créature contre les créatures des autres (dans ce cas, l'IA prend la main sur l'utilisateur).
Identification via facebook Connect.
Bientot en ligne :)
Le code sera open-source.

Laissez des commentaires sur la source et le code :)

Commentaire de pegase31 le 14/02/2009 19:17:12 administrateur CS

je vais peut-être jouer les chiants, mais il y a 2 choses qui me chagrinent dans l'ergonomie de ton jeu :
- pourquoi la bestiole de base à la queue qui fait des dérapages ?
- Pourquoi ne gères-tu pas l'appuie/relâchement des touches de direction pour la faire tourner de façon fluide ?

Sinon c'est graphiquement beau mais j'ai toujours pas compris comment jouer ..

Peg'

Commentaire de BlackWizzard le 14/02/2009 20:07:44 administrateur CS

hello,
Je suis tout à fait d'accord avec tes remarques, et je cherche des solutions pour corriger.
Pour  la queue qui fait des derapages, c'est parsque chaque creature est encapsulée dans un movieclip, et les coordonnées (0;0) correspondent à la tete. Donc, quand on tourne (_rotation), c'est la tete qui fait tourner le tout.
Je vais corriger ça en modifiant le principe de rotation, pour que le reste du corps puisse suivre de façon realiste.
Pour les touches de direction, je ne me souvient pas d'une autre solution que mettre un addListener sur un object. Du coup, c'est pas super fluide...

PS: Demo des dernieres version: http://www.blackwizzard.com/spore/spore.html

Je vais uploader une nouvelle version d'ici qques minutes, le temps de tester (creatures dans un fichier xml externe et IA bien plus rapide).


Pour jouer, il suffit de manger les petites creatures en evitant de se faire manger.
Il faut remplir la barre rouge (chaque creature mangée remplis un peut plus la barre)

Commentaire de pegase31 le 14/02/2009 20:20:59 administrateur CS

Pour ce qui est de la tête, je te conseille de ne pas modifier le clip, mais la première phase de la tête qui donnera ses instructions au reste du corps (stockés dans un tableau).
Par contre, il va falloir réduire les rotations à certains angles pour éviter de voir la tête rentrer dans le corps.

Pour ce qui est des boutons, il y a une méthode simple :
- Déterminer quelle touche est appuyée
- stocker la variable à "1"
- lors du relâchement, la mettre à 0
- faire tourner un script qui modifie le déplacement en fonction des "1/0" déterminés.

Plus de soucis de répétitions à la con.

Peg'

Commentaire de stefbuet le 15/02/2009 00:58:45

Pour la tête j'aurais une idée. Représente chaque morceau par une class.
Chaque morceau de la chenille (object) doit avoir 3 propriétées : speed (object {x:y}), position (object {x:y}) et child (objet morceau de chenille).
A chaque rafraichissement de ton ecran, chaque fois que tu a calculer des nouvelles positions, tu modifi seulement la vitesse et l'angle du premier morceau de la chenille. Celui ci va, si il à un enfant (child) modifier au prochain update la vitesse & angle de son enfant en lui attribuant les valeur que l'on lui donne en ce moment même.

Un petit exemple (pas testé, juste pour le concept)
Désolé si je fait des erreurs de syntaxe ça fait quelques mois que je suis plongé profondement dans le C++ pour un gros projet...

package {
class Chenille {

private var child:MorceauChenille;
private var speed:int, angle:int;

public function Chenille (x:int=0, y:int=0, angle:int=0, speed:int=0) {
child=new MorceauChenille(x,y,angle,speed);
}

public function update(newSpeed:int, newAngle:int) {
child.update(newSpeed, newAngle);
}
public function addBlock() {
child.addBlock();
}
}//fin class
}//fin package

package {
class MorceauChenille {

private var speed:int, x:int, y:int, angle:int, speed:int;
private var lastSpeed:int, lastAngle:int;
private var firstMove:bool;
private var child:MorceauChenille;

public function MorceauChenille($x:int,$y:int,$angle:int,$speed:int) {
x=$x;
y=$y;
angle=$angle;
speed=$speed;
firstMove=true;
}

public function update(newSpeed:int, newAngle:int):void {
angle=newAngle;
speed=newSpeed;
//après on calcul la nouvelle position en fonction rayon cercle angle & vitesse
//pour le concept on dira que le rayon est de 20...
x+=Math.cos(angle)*speed;
y+=Math.sin(angle)*speed;
if(firstMove) {
firstMove=false;
}
else {
if(child) {
child.update(lastSpeed, lastAngle);
}
}
lastSpeed=speed;
lastAngle=angle;
}

public function setChild(newChild:MorceauChenille):void {
child=newChild;
}

public function getPosition():Object {
return({X:x,Y:y});
}

public function addBlock():void {
if(!child) {
child=new MorceauChenille(x,y,angle,0);
}
else {
child.addBlock();
}
}

}//fin class
}//fin package

Voila, mais j'ai du faire pas mal d'erreur.
Et puis j'avais vu qu'avec CS4 on pouvais utiliser des vector... mais j'ai pas vraiment regardé encore toutes les nouveautés Fl pour le moment.

Stef



public

Commentaire de BlackWizzard le 15/02/2009 09:20:52 administrateur CS

Hello
merci pour cette solution.
Par contre, le code proposé en illustration est en AS3, qui je ne connais pas du tout...
Mais j'ai compris le principe. Je vais essayer d'adapter... ça demande un re-écriture assez large du code de la class spore.as
Je vais voir ça...

Commentaire de pegase31 le 16/02/2009 09:01:23 administrateur CS

Ce serait justement l'occasion de passer à l'AS3 .. l'AS2 ça n'évoluera plus et tu ne poura pas bénéficier des ajouts des dernières versions (en gros, rester sur flash 8)

Peg' ;)
Le plus dur c'est le passage, après c'est que du bonheur !

Commentaire de top30 le 17/02/2009 20:05:06

http://www.flashkod.com/codes/COMPOSANT-JOYPAD-FLASHCS3_47002.aspx
Ca pour résoudre ton problème de "clavier"

http://www.flashkod.com/codes/CINEMATIQUE-INVERSE-DEPLACEMENT-DYNAMIQUE-BOUCLE-FOR-LINESTYLE_46756.aspx
Pour t'aider dans le concept de tes "vertebres"...

Autre conseil appel ton jeu "Life" ou "DNA" mais prend pas le nom d'un jeu existant... Imagine toi que ton "openSource" ai du succés, tu devras payer !

Et c'est bien dommage que quelqu'un comme toi ne soit pas à l'AS3. C'est vraiment pas dur, par contre plus stricte. Te connaissant (un tout petit peu si si) tu devrais pouvoir adapter tres tres rapidemement.

Puisque tu dis que ton jeu sera openSource je vais t'aider un peu de ma "vision" des choses pour te simplifier l'evolution de ton jeu.

Le plus petite animal de tous pourrait être une "cellule":
Cellule.vie ( de 0 à 1, 0:mort, 1:au max de sa forme)
Cellule.age ( de 0 à 1, 0:nouveau né 1:mort )
Cellule.benefice(une propriété gagnée/augmentée par ingestion de la cellule)
Cellule.deficite(une propriété altérée/perdue par ingestion de la cellule)
Cellule.gain (la quantité de la qualité affectée)
Cellule.perte (la quantité du default affecté)

Propriétés/defaut des animaux:
- Perception (visuelle, radar, olfative)
- Croissance (bloc pour un serpent, dent pour un carnivore, etc...)
- Deplacement (Vitesse, forme, environnment)
- Couleur (Un animal jaune dans une eau bleue se verra plus qu'un autre bleu)

Certains animaux pouvant être l'évolution d'une cellule, d'autre pouvant être composé d'un ensemble de cellules...

Tes animaux devant aussi être capable de réagir aux sentiments les plus basiques:
- Plaisir (manger telle nourriture)
Le plaisir, par exemple, pourrait "freiner" le vieillissement de ton animal.
- Peur (Environnment sans nouriture, être mangé)
La peur pouvant entrainer prématurément la mort si trop longtemps...  
- Sans effet (Glander dans l'eau)

Ils doivent avoir une "mémoire" pouvant être associé à la quantité de cellules les composants.
La mémoire stockant les situations rencontrées:
- Acteur/Environnment/Date= Sentiment
Quand un animal rencontre une situation, il memorise si le peut**:
- le ou les acteurs
- le lieux
- la date,
- etc..
et surtout le resultat :Peur/Plaisir
(La perte d'un deficite pouvant ainsi être considéré comme bénéfice)

Quand ton animal rencontre une nouvelle situation (affectation des sentiment), ton animal pourra réagir (ou non) selon l'analyse de sa memoire.
Predateur dans champ de vision=  PEUR
Peur= augmentation de le rapidité de déplacement
AugmentationRapidité= digestion plus rapide...

La mémoire de certain pouvant être des piles ou des queue, ou une election de la suppression si saturation...

Bref avant de t'attaquer au "graphisme" du devrait plancher tres tres FORT sur un aspect "code" super évolutif et surtout quasi commun à tout animal...

A plus et bon courage....

Commentaire de BlackWizzard le 17/02/2009 20:26:37 administrateur CS

Thx :)
Le jeu a été renommé en "Darwin" il y a qques jours, et il ne sera plus open-source... Mais il sera multi-joueur.
On commence avec une creature basique, on joue sur plusieurs niveaux, avec des difficultées qui augmentent (les IA de plus en plus intelligente, des enemies de plus en plus rapide et puissant, ...)
Lorsqu'on passe un niveau, on obtient un nombre de points qui sont stockés.
On peut utiliser ces points quand on le souhaite pour les echanger contre des mutations, dont le prix varie. Les mutations aident à survivre (meilleurs vision, vitesse, force, ou simplement design et apparrence).
Pour la creature elle meme et ses propriété, il y a une 15aine de variables.
Pour les couleurs, il ya pres de 20 variables, pour pouvoir creer des couleurs et des effets uniques.

Le tout dans un editeur assez simple mais puissant.

J'en suis à 70% du dev...

On pourra jouer dans les niveau pour faire evoluer sa creature, puis combattre les creature des autres dans des arenes, et faire de la reproduction: On choisi deux créatures, et on en obtient un hybride.

Commentaire de stefbuet le 18/02/2009 01:25:56

La source citée plus haut n'est pas vraiment un véritable algo de cinematique inverse mais une simplification, cependant elle suffit pour ici, je supose.
Cette page explique très bien le concept de l'IK:
http://freespace.virgin.net/hugo.elias/models/m_ik.htm

Stef.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

pb prog pour un ti game de hand [ par JuDaSkk ] j'explique...en gros on voit le but et on tire des peno habituel quoi;mais moi je veux que l'on clique où on veut tirer dans but,pas des vielles bar Problème onRollOut dans movieClip [ par Yoann19 ] &nbsp; Bonjour tout le monde, <p cla télécharger un fichier son a partir d'une variable [ par flopione ] Bonjour à tousC'est mon 1er post...et mon 1er code compliqué dans flash...j'ai crée un mini-lecteur mp3 en streaming avec flash cs3.http://www.flopion AS3 - passa ge de paramètre Parent / Enfant ?? [ par slog9 ] Bonjour à tous! Je suis en train de coder un petit jeu tout con, histoire de mettre les mains dans l'as3... J'ai donc créé des classes associées à de


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales