SuperCars PPC

15 sujets de 1 à 15 (sur un total de 123)

  • Anonyme

      #9394

      Coucou,

      Quand une routine me prend la tête, je fais une pause et je me lance dans une autre routine et PAF!!!

      Vla que j’trouve par hazard, comment utilisé l’angle de rotation d’une brush (brosse) pour l’utilisé comme donné pour un déplacement … sa donne supercars PPC lol

      Mouarf, j’ai même mis une donnée pour l’accélération.

      Bon, le gars qui arrive à faire le tour sans toucher l’herbe et balaise ;-) n’oublier pas, c’est quand même des virages à 90 ° et à fond vous êtes à 120 Km/heure

      Dites moi si c’est bon, niveau jouabilité comme la fluidité.

      Voici les liens

      http://jeannoel.roueste.free.fr/Amiga/SuperCarsAOS.exe

      http://jeannoel.roueste.free.fr/Amiga/SuperCarsMorphos.exe

      La source dans pas longtemps, faut quand même que je montre un truc présentable ;-)

      Une photo du truc ;-)

      Image[/img]

      Edit : Code modifié, j’avais lancé un antialiasing de 640×480… hum… trop bête la crevette

      Modération de Tcheko : marre de voir la mise en page explosée…

      Daff

        #144155

        La voiture est trop lente et ça tourne mal.

        Est-ce que tu peux faire défiler l’écran ? (comme dans Super Cars)

        Anonyme

          #144156

          Mince… t’a testé sous morphos ou AOS?

          oui, je sais faire le scrolling, c’est trrrès simple, même en multidirectionnel, même en parallax, même avec un effet 3D (moteur de outrun)…

          Mais si déjà à la base se simple moteur de merde ne tourne pas, j’ai pas intéré de rajouter un scroll et encore moins d’autres voiture ou alors, une solution… passé de 640×480 à 320×200 et la sa va claquer… mais j’ai pas envie de faire des trucs qui pixelise à mort ou dans une mini fenêtre….

          Remarque, j’utilise des commande de traçage pour le circuit (le truc à pas faire) sa marchera mieux avec une table de Brosse de 32×32 pixel

          Anonyme

            #144157

            Voici le code source :

            ; Ouverture d’un Ecran

            ; J’explique bien sûr:

            ; « Mode= » défini quel mode utilisé, 3 sont disponibles.

            ; Ici, on choisi « Ask », cela permet l’ouverture d’une requête.

            ; 2 choix : Soit mode fenêtre, soit mode plein écran

            @SCREEN {Mode= »Ask »,Width=640, Height=480}

            ; On démarre la méthode : Double buffer

            BeginDoubleBuffer

            ; On défini le style de remplissage des formes primitives

            ; #FILLCOLOR = Remplir de la couleur de traçage

            SetFillStyle(#FILLCOLOR)

            ; On défini un type de police de caractère, ou plutôt d’effet

            ; #EDGE = Entouré chaque lettre

            ; #BLACK = L’entourage de couleur noir peut être noté $000000

            ; « 1 » = L’épaisseur de l’entourage

            SetFontStyle(#EDGE, #BLACK, 1)

            ; Création d’une Brosse (en interne)

            ; C’est la Brosse N°1 de longeur 32 pixel et de largeur 64 pixel

            ; La couleur de remplissage de se rectangle de 32×64 est le noir

            ; couleur que l’on aurait pu noter #BLACK (constante hollywood)

            CreateBrush(1,32,64,$000000)

            ; On selectionne la Brosse créée

            SelectBrush(1)

            ; On trace les cercles pour l’avant

            Circle(1,0,11,$AA0000)

            Circle(9,0,11,$AA0000)

            ; On trace le contour de la voiture

            Box(2,6,28,60,$AA0000)

            ; Les vitres sinon on voit rien

            Box(5,22,22,10,$111111,{RoundLevel = 50})

            Box(5,50,22,5,$111111,{RoundLevel = 50})

            ; Le toit de la voiture

            Box(5,30,21,20,$CC0000)

            ; On enlève le remplissage des formes primitives

            SetFillStyle(#FILLNONE)

            ; Les petit détail, que des traits (capot)

            Line(5,30,5,50,$111111)

            Line(26,30,26,50,$111111)

            Line (31,0,31,64,$000000)

            Line (5,21,6,6,$880000)

            Line (26,21,25,6,$880000)

            Line (6,6,9,3,$880000)

            Line (25,6,22,3,$880000)

            Line (9,3,22,3,$880000)

            ; Le coffre pour ranger sont AMiga NG avec des pack de bières

            ; pour le lan entre copain ;-)

            Box(6,56,20,8,$880000)

            ; On déselectionne la Brosse… on a fini la tuture

            EndSelect

            ; On enlève le noir de fond de la Brosse, sinon

            ; sa fait une voiture dans un carré noir

            SetBrushTransparency(1, #BLACK)

            ; Variable Global… Pas bien, mais on a pas le choix

            X=320 ; Position X de départ de la tuture

            Y=50 ; Position Y de départ de la tuture

            Angle=0 ; Angle de départ de la tuture

            vitesse=0 ; Vitesse de départ de la tuture

            ; déjà vu

            SetFillStyle(#FILLCOLOR)

            ; Comme SetFontStyle

            ; on ajout un entourage des formes primitives… cool

            SetFormStyle(#EDGE, #BLACK, 1)

            ; Attention, v’la de la programmation objet ;-)

            ; 1 fonction, bin sa fais un PRG principale + une routine, c’est objet lol

            ; Déclaration de la Fonction supercar()

            Function supercar()

            ; Ah! des variables locales… c’est mieux

            Local Avance = IsKeyDown(« UP ») ; Si j’appuie sur HAUT alors Avance=True

            Local Recule = IsKeyDown(« Down ») ; même principe

            Local Droite = IsKeyDown(« RIGHT ») ; …

            Local Gauche = IsKeyDown(« LEFT ») ; …

            If Avance = True

            Vitesse=vitesse+0.3

            If vitesse>4 Then vitesse=4

            ; Si Avance = False (donc on appuie pas sur haut)

            Else

            If vitesse>0

            vitesse=vitesse-0.1

            EndIf

            EndIf

            If Recule = True

            Vitesse=vitesse-0.2

            If vitesse<-1 Then vitesse=-1 Else If vitesse<0 vitesse=vitesse+0.2 EndIf EndIf If vitesse>0 And vitesse<0.1 Then vitesse=0

            ; LA c’est le plus important

            ; On calcule l’angle en radians d’ou l’angle en degré x 0.01745

            Radians=Angle*0.01745

            ; Déplacement de la tuture selon X et Y qui se modifie en

            ; même temps

            X=X+Cos(Radians)*vitesse

            Y=Y-Sin(Radians)*vitesse

            ; Si la tuture arrive en bord d’écran, on affiche la tuture à la

            ; partie opposé, même principe que le jeux Asteroid

            If X>680 Then X=-40

            If X<-40 Then X=680 If Y<-40 Then Y=520 If Y>520 Then Y=-40

            ; Si la tuture est à l’arrêt, alors on tourne pas, normal

            If vitesse<>0

            If Droite = True Then Angle=Angle-1

            If Gauche = True Then Angle=Angle+1

            EndIf

            ; on utilise des commandes de traçages de primitive

            ; pour dessiner notre mini circuit

            Box(0,0,640,480,#GREEN)

            Box(10,10,620,460,$555555,{RoundLevel = 50})

            Box(100,100,440,280,#GREEN,{RoundLevel = 50})

            ; Le text classique

            TextOut(0,0, »vitesse : « )

            TextOut(80,0,Round(Abs(vitesse*30)))

            TextOut(110,0, »Km/h »)

            TextOut(#CENTER,150, »INSTRUCTION »)

            TextOut(#CENTER,160, »


            « )

            TextOut(#CENTER,180, »Fleche HAUT pour accélérer »)

            TextOut(#CENTER,190, »Fleche Bas pour Freiner-reculer »)

            TextOut(#CENTER,200, »Fleche droite et gauche pour la rotation de la tuture »)

            TextOut(#CENTER,240, »ATTENTION »)

            TextOut(#CENTER,250, »


            « )

            TextOut(#CENTER,270, »Vous ne pouvez pas faire tourner la voiture »)

            TextOut(#CENTER,280, »si elle ne roule pas ;-)« )

            ; On Affiche la tutre après, sa évite le CLS, donc on gagne du temp ;-)

            DisplayBrush(1,X,Y,{AnchorX = 0.5, AnchorY = 0.5,rotate=-90+Angle})

            ; on bascule l’écran de travail

            Flip

            ; Fin de la fonction

            EndFunction

            ; on défini un interval de temps, ici normalement sa tourne à 50 FPS Maxi

            ; même sur un ANG à 1000 Ghz

            SetInterval (1,supercar,1000/50)

            ; Boucle habituel d’hollywood sinon le PRG s’arrête

            Repeat

            ; On attend une action de l’utilisateur pour sortir de cette boucle

            ; infini, et la lance la fonction supercar

            WaitEvent

            Forever

            Modération de Tcheko : idem. Copier l’italique dans un fichier texte à police fixe.

            kioniro

              #144158

              Héhé amusant ! Merci de faire tourner tes sources ! :-D

              Ma config : Amiga CD32 nue, c'est un super joujou pour rester dans le monde de l'Amiga 🙂

              Anonyme

                #144159

                Récupère juste la formule de déplacement pour l’insérer dans un programme basic classique et hop, sa marche aussi…

                Anonyme

                  #144160

                  Nouveau fichier téléchargeable…

                  A tester, car bien plus rapide (en tous cas sur mon PC)

                  Screetch

                    #144161

                    C’est un bon petit début, mais cela reste un poil lent sous MOS 2.7 et un Peg II G4.

                    Il n’y a plus qu’à rajouter du scroll, d’autres voitures, de la gestion de collision, un peu de graph, un peu de charme, de la zique, des bruitages et te voilà parti pour développer un petit jeu old-school sympathique :)

                    Ha si ! Il manque un moyen simple pour quitter le programme en mode écran… J’ai trouvé Ctrl-C comme c’est souvent le cas par défaut pour des programmes de tests….

                    Abonnez-vous à ma nouvelle chronique "En Route vers le Futur" sur Youtube !

                    Anonyme

                      #144162

                      Le scroll, d’autres tutures,gestion des collisions,des bruitage et de la zics, pas de problème pour moi, le plus dur sera les graphs et le charme…

                      Tarzin

                        #144163

                        Tes sources sont très bien commentées! :-D

                        Merci en tout cas.

                        Sinon, tu ne peux pas précalculer toutes tes positions de voiture à l’avance, créer un sprite à chaque fois et dans ta routine principale, aller chercher le bon sprite qui correspond à la position?

                        kioniro

                          #144164

                          Sur le site d’hollywood, les specs minimales sont les suivantes :

                          AmigaOS 3 (m68k)

                          Amiga: Hi- or Truecolor screenmode, 68020 CPU

                          Du coup pas besoin de carte additionnelle, si ?

                          Après peut être que ça dépend des appels que tu fais sur le code.

                          Ma config : Amiga CD32 nue, c'est un super joujou pour rester dans le monde de l'Amiga 🙂

                          Anonyme

                            #144165

                            @Tarzin:

                            Fais nous un asteroids, à la place de faire une tuture, tu fais un vaisseau, et t’enlève ces lignes

                            If vitesse<>0

                            If Droite = True Then Angle=Angle-4

                            If Gauche = True Then Angle=Angle+4

                            EndIf

                            Comme sa, ton vaisseau tourne sans être obliger de te déplacer ;-)


                            @Kioniro
                            :

                            Dans le guide hollywood, il est spécifié qu’il faut obligatoirement une carte graphique :-(

                            Les mode true et hi color sont dispo, si je dis pas de bêtise, qu’avec une carte GFX, l’aga ne le faisant pas

                            Anonyme

                              #144166

                              Nouvel approche (tout en bitmap)

                              avec scroll multidirectionnel… faite pas gaffe aux graphs… ils ont nul lol

                              Se qui compte c’est le nombre de FPS ;-)

                              Vos avis svp ;-)

                              Rappel:

                              Voici les liens

                              http://jeannoel.roueste.free.fr/Amiga/SuperCarsAOS.exe

                              http://jeannoel.roueste.free.fr/Amiga/SuperCarsMorphos.exe

                              Lion

                                #144167

                                19 fps chez moi en fullscreen sur A1G4@800

                                Anonyme

                                  #144168

                                  Merci Lion… pas mal, mais il faut que j’approfondisse le code ;-)

                                15 sujets de 1 à 15 (sur un total de 123)

                                • Vous devez être connecté pour répondre à ce sujet.

                                Forums AmigaOS, MorphOS et AROS Développement SuperCars PPC

                                Amiga Impact