Posté le 11/01/2016 19:49
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 89 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 12/01/2016 18:02 | #
/me télécharge manuellement la vidéo puisqu'évidemment il ne peut pas la regarder directement comme tout le monde...
Eh bien, ça a l'air pas mal ! En tous cas au niveau des graphismes et de l'animation, c'est-à-dire ce dont on peut juger d'après la vidéo. Ah oui, j'oublie aussi le saut, qui est vraiment pas mal !
À part le coup de la caméra (c'est presque du détail, je pense), j'aimerais bien voir aussi quel niveau de facilité de code offre le C-Engine pour arriver à un tel résultat, et à quel prix en terme de souplesse (variété du gameplay, j'entends).
Par ailleurs tous les syscalls sont compatibles SH4 normalement, y compris sur la gestion du temps donc tu ne devrais pas avoir de problèmes à condition d'utiliser la bonne syntaxe.
Citer : Posté le 12/01/2016 19:56 | #
Justement pour la compatibilité des syscalls je me demandai comment vous faites pour les placer dans un fichier Asm et comment vous linkez le fichier Asm au projet.
Sinon pour le niveau de facilité du code regarde par toi même :
main.cpp
#include "..\C-Engine\CHeader.hpp"
#include "Script.hpp"
int main()
{
#include "Sprite.hpp" // Inclusion des sprites.
//*****************Creation des objects******************
Object Kirby;
Kirby.OTransforms->SetXY(0, 17);
Kirby.ORender->SetRender(A_Kirby , 4);
Kirby.ORigibody = new Rigibody(&Kirby);
Kirby.ORigibody->SetMass(1);
Object Ours1;
Ours1.OTransforms->SetXY( 110 , 17);
Ours1.ORender->SetRender(A_Ours);
Object Ours2;
Ours2.OTransforms->SetXY( 1000 , 17);
Ours2.ORender->SetRender(A_OursBis);
Control Kirby_Script;
IaOurs Ours_Script1;
IaOurs Ours_Script2;
Kirby.AffectScript(Kirby_Script);
Ours1.AffectScript(Ours_Script1);
Ours2.AffectScript(Ours_Script2);
//***********Creation de la map***************
Map Niveau1;
Niveau1.SetMap(Tileset1 , map1 , TileProp , 16 , 16 , 81 ,7);
//**************Assignation des objects************
Engine Game;
Game.AddObject( & Kirby);
Game.AddObject( & Ours1);
Game.AddObject( & Ours2);
Game.AffectMap( &Niveau1);
Niveau1.AffectEngine( &Game);
Game.Game();
return 1;
}
Script.h
{
public:
void Start();
void Update();
void UpdateEverySecond();
private:
bool direction;
};
void IaOurs::Start()
{
direction = true;
}
void IaOurs::UpdateEverySecond()
{
if(direction == true) direction = false;
else direction = true;
}
void IaOurs::Update()
{
OConteneur->ORender->ReverseRender( direction);
if(direction == true)OConteneur->OTransforms->SetX( OConteneur->OTransforms->GetX() - 1);
else OConteneur->OTransforms->SetX( OConteneur->OTransforms->GetX() + 1);
}
class Control: public Script
{
public:
void Update();
private:
bool isground;
bool isdo;
};
void Control::Update()
{
OConteneur->Conteneur->MiddleScreen( OConteneur->OTransforms->GetX() , (OConteneur->OTransforms->GetY() + 16));
if( OConteneur->ORigibody->CollisionDecor( OConteneur->OTransforms->GetX() , (OConteneur->OTransforms->GetY() - 1 )) == 1) isground = true;
else isground = false;
isdo = false;
if(input_press(K_RIGHT))
{
OConteneur->ORender->SetIt(1);
OConteneur->ORender->ReverseRender( false);
isdo = true;
OConteneur->ORigibody->Move( 1 , 0 );
}
if(input_press(K_LEFT))
{
OConteneur->ORender->SetIt(1);
OConteneur->ORender->ReverseRender( true);
isdo = true;
OConteneur->ORigibody->Move( -1 , 0 );
}
if(input_press(K_UP) && isground == true)
{
OConteneur->ORender->SetIt(0);
isdo = true;
OConteneur->ORigibody->AddForce( 0 , 38);
}
if(input_press(K_SHIFT) && isground == true)
{
OConteneur->ORender->SetIt(2);
}
if(isground == false)
{
OConteneur->ORender->SetIt(3);
}
else if( isdo == false)
{
OConteneur->ORender->SetIt(0);
}
if( OConteneur->OTransforms->GetY() < 0)
{
OConteneur->OTransforms->SetXY(0, 17);
}
}
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".
Citer : Posté le 12/01/2016 20:09 | #
T'as encore mis du code dans un header >.<
Et d'où tu inclus un header dans une fonction, oh... x)
Je ne parlerai pas de l'indentation par ailleurs, comment peux-tu coder un gros projet comme ça ? Je ne saisis pas...
Mais bref, ça on s'en fout un peu.
Je dois avouer que la clarté est là... c'est carrément simple à utiliser, bien joué.
Par contre pourquoi tu affectes le moteur au niveau ? Tu devrais plutôt avoir engine.startLevel(), c'est bien plus logique je pense.
Est-ce que la structure du moteur permet d'ajouter manuellement, en-dehors du moteur de jeu lui-même, des mécaniques de jeu exotiques, type passages secrets / sorties de maps / téléportations / ennemis ayant différentes formes / scripts d'évènements et/ou d'animations / éditions de la map ou est-on « restreint » à l'interface qu'il offre ?
Citer : Posté le 12/01/2016 20:18 | #
La téléportation est possible d’ailleurs dans la vidéo on est tp au début de la map si on tombe dans le vide. Pour des mécaniques de jeu exotiques je pense que c'est possible après avoir les quelles. Script d'événement c'est le Script.h avec la fonction Update() appelé chaque frame.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".
Citer : Posté le 12/01/2016 20:29 | #
Script d'événement c'est le Script.h avec la fonction Update() appelé chaque frame.
Je parle de scripts qui sont utilisées une seule fois, par exemple quand on appuie sur un bouton, ce qui affecte l'état de la map
N'y a-t-il vraiment pas d'interfaçage possible avec un programme personnalisé ?
Citer : Posté le 12/01/2016 20:31 | #
Yep, c'est en effet pas mal coté utilisateur (coté code, c'est juste immonde), mais si on peut personnaliser assez facilement le moteur ça serai pas plus mal.
Citer : Posté le 13/01/2016 07:04 | #
Dans l update tu peu par exemple vérifier si le bouton est appuyé. Sinon il y a d autre fonction comme start executé au départ ou endanim executé à la fin d une animatuon du personnage.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".
Citer : Posté le 13/01/2016 12:04 | #
T'as encore mis du code dans un header >.<
Et d'où tu inclus un header dans une fonction, oh... x)
Je ne parlerai pas de l'indentation par ailleurs, comment peux-tu coder un gros projet comme ça ? Je ne saisis pas...
Mais bref, ça on s'en fout un peu.
Depuis quand le grand Lephenixnoir se permet de dire que l'on se fout de l'indentation et d'autres erreurs comme celles-ci ?
Je ne reconnais plus notre Phenix là
Citer : Posté le 14/01/2016 19:42 | #
Depuis quand le grand Lephenixnoir se permet de dire que l'on se fout de l'indentation et d'autres erreurs comme celles-ci ?
J'estimais que Fife86 savait gérer son projet, même si ces remarques me font quand même douter du code résultant... x)
Parce que oui quand tu codes un moteur comme ça je pense que tu mérites qu'on ne t'emmerde que par principe avec le code. Pas comme toi par exemple... :3
Citer : Posté le 14/01/2016 19:49 | #
J ai toujours appris en auto didacte donc je ne connais pas trop les normes des écoles. Mais lorsqu on mz fait une remarque j essaye dans prendre compte.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".
Citer : Posté le 14/01/2016 19:55 | #
C'est pas des normes d'écoles, c'est du consensus général C'est des genres de choses qu'on ne fait tout simplement pas en C, comme le goto.
Citer : Posté le 14/01/2016 19:56 | #
Goto sa exsiste ???? Xd
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".
Citer : Posté le 14/01/2016 20:31 | #
Non, ça n'existe pas
(Bref.)
Citer : Posté le 14/01/2016 20:34 | #
Je vois Sinon, je tiens quand même à encore te féliciter pour ce programme, peut-être qu'un jour tu arriveras à faire ce genre d'applications mais universelles et non liées à la calculatrice ! En tout cas, étant adepte de ce genre de programmes, je ne peux qu'admirer et j'ai hâte que ça sorte sur SH4 encore une fois, poste ton problème ici si tu n'arrives pas à le résoudre
Citer : Posté le 15/01/2016 10:38 | #
D'ailleurs j'ai regardé le code, ce n'est peut-être pas à jour, mais je te déconseille d'inclure tes sprites aussi simplement comme celà.
Passe plutôt par une base de données. Tu as un fichier .c qui contient tout tes sprites et des fonctions pour y accéder.
Comme ça pour obtenir un sprite tu fais un truc du genre :
bdd_sprite_personnage(3, 2, 0, 2)
avec un prototype
(const unsigned char)* bbd_sprite_personnage(int id, int direction, int chute, int pattern);
Citer : Posté le 15/01/2016 12:37 | #
Le goto existe en C mais il est très peu utilisé (et heureusement) Un petit lien pour savoir que ça existe
Citer : Posté le 22/01/2016 13:57 | # | Fichier joint
Venez des maintenant l'essayer, le jeu est dans la pièce jointe...... :aaah:
Touche replay pour se déplacer et Alpha pour Quitter.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".
Citer : Posté le 22/01/2016 19:50 | #
Oh mon dieu je teste !
Ajouté le 22/01/2016 à 19:59 :
Donc, déjà c'est très sympa et c'est joli
Mais, parce qu'il faut un mais, on ne voit pas on on va quand on est sur une plateforme plus haute que ce qu'il y a en dessous Donc descendre un peu la caméra serait beaucoup plus agréable.
Aussi quand on saute et qu'on se met contre un mur, kirby ne descend pas.
Sinon pas grand chose d'autre à dur à part que les graphismes sont très agréable, bien joué sur ce coup !
Un beat them all pour les CPC 19
Un jeu de Tank multijoueur en version graphique
Un jeu de boxe rigolo
Le moteur de combat épique d'un RPG
soccer physics : Un jeu de foot totalement wtf !
Survie 1 & 2 te laisseras-tu attraper par la méchante IA ?
Séquestrez les tous avec Catch'em all !
Joué à la calcultarice et pécher ? Facile !
Battle un système de combat dément !!
Débombe pas tout à fait un démineur
Mon mario pour le concours des 10 ans de PC
Casio jump un doodle jump pas comme les autres !
Rush four your life : tu cours ou tu meurs
Cookie clicker ! More cookies MOOORE !
Move et esquive : bouge pour esquiver les ennemis !
Guitar Hero !! Let's rock !
INVASION : Au secours on se fait envahir !
Un devine nombre entièrement customisable (mon 1er jeu)
Un outil pour dessiner des sprites en super drawstat et qui vous le compile pour vous donner un code utilisable dans vos programmes
Un super programme de dessin bourré de trucs funcs
Sortir une version finale de Tankasio
Bien m'améliorer en C parce que pour l'instant c'est pas jojo
Une ou plusieurs idées qui mûrissent petit à petit
Citer : Posté le 24/01/2016 08:57 | #
La problème de la caméra va bientôt être réglé, je fini juste de coder la partie qui permet a kirby de voler. Pour ce qui de la collision avec le décor, c est encore très simple. Lorsque l object touche un cube du décor il s arrète.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".
Citer : Posté le 24/01/2016 10:02 | #
Oo je teste le SH4 !
@Fif : Sound4Calc ne se mettra pas tous de suite dans C-Engine
Citer : Posté le 25/01/2016 13:32 | #
Franchement, bien joué
J'ai hâte qu'il sois fini
PM Générateur
graph100+ bleue
Neuronix9302
2nde GT