Faits :
A.
Par jugement du 8 janvier 2019, le Tribunal de police de l'arrondissement de Lausanne a condamné A._, pour violations simple et grave des règles de la circulation routière, tentative d'entrave aux mesures de constatation de l'incapacité de conduire, conduite en état d'ébriété qualifiée, conduite en état d'incapacité de conduire, violation des obligations en cas d'accident, conduite d'un véhicule défectueux et contravention à la LStup, à une peine privative de liberté de neuf mois, avec sursis durant trois ans, ainsi qu'à une amende de 1'200 francs.
B.
Par jugement du 21 mai 2019, la Cour d'appel pénale du Tribunal cantonal du canton de Vaud a rejeté l'appel formé par le prénommé contre ce jugement et a confirmé celui-ci.
La cour cantonale a retenu les faits suivants.
B.a. Entre 2015 et 2017, A._ a consommé régulièrement du cannabis à raison d'un à deux joints par semaine. Il a également consommé occasionnellement de la cocaïne, à raison d'une à deux fois tous les deux ou trois mois. Le 5 juin 2017, il a consommé une pilule de MDMA.
B.b. A B._, le 5 juin 2017, A._, qui circulait au volant de son véhicule à une vitesse inadaptée et alors qu'il se trouvait sous l'influence de l'alcool et du MDMA, a perdu la maîtrise de sa voiture et a heurté l'arrière gauche d'une automobile stationnée le long de la chaussée. Sous l'effet du choc, ce véhicule a percuté l'arrière d'une autre voiture stationnée devant elle. A._ a quitté les lieux, alors même que son véhicule était fortement endommagé, sans aviser la police ni les propriétaires des véhicules sinistrés. Il a cependant pu être interpellé à son domicile deux heures plus tard environ. L'analyse de son sang et de son urine a révélé une alcoolémie comprise entre 1,08 et 1,85 g/kg ainsi qu'une concentration de MDMA de 250 μg/l au moment de l'accident. La présence de THC et de cocaïne, à des concentrations inférieures aux valeurs limites, a également été constatée.
B.c. A C._, le 25 août 2017, A._, qui circulait au volant du véhicule de son employeur à une vitesse comprise entre 40 et 50 km/h, a talonné le véhicule qui le précédait à une distance de quelques centimètres, sur environ 20 mètres. Le prénommé a par la suite adopté le même comportement à l'égard d'un autre véhicule, cette fois sur quelque 80 mètres. Il a encore fait crisser sans raison les pneus de son véhicule.
C.
A._ forme un recours en matière pénale au Tribunal fédéral contre le jugement du 21 mai 2019, en concluant, avec suite de frais et dépens, à sa réforme en ce sens que l'appel est admis, que le jugement du 8 janvier 2019 est annulé et que la cause est renvoyée à une autre autorité de première instance pour nouvelle instruction et nouvelle décision. Il sollicite par ailleurs le bénéfice de l'assistance judiciaire.

Considérant en droit :
1.
Le recours en matière pénale est une voie de réforme (art. 107 al. 2 LTF). Le recourant ne peut se borner à demander l'annulation de la décision et le renvoi de la cause à l'autorité cantonale, mais doit également, sous peine d'irrecevabilité, prendre des conclusions sur le fond du litige. Il n'est fait exception à ce principe que lorsque le Tribunal fédéral, s'il admettait le recours, ne serait pas en mesure de statuer lui-même sur le fond et ne pourrait que renvoyer la cause à l'autorité cantonale (cf. arrêt 6B_111/2015 du 3 mars 2016 consid. 1.7 non publié aux <ref-ruling>; <ref-ruling> consid. 1.3 p. 317; <ref-ruling> consid. 1.3 p. 383).
En l'occurrence, le recourant n'a pas pris de conclusions en réforme sur le fond de la cause, mais se borne à réclamer le renvoi de celle-ci à une nouvelle autorité de première instance. Il prétend que l'admission de son recours devrait conduire à un renvoi de la cause à une "autorité de première instance différente de celle initialement saisie", en affirmant qu'il ne "servirait à rien de retourner la cause à la Cour d'appel pénale du Tribunal cantonal vaudois puisque la tentation humaine serait grande pour cette Cour d'entendre, sur injonction du Tribunal fédéral, [le témoin dont il requiert l'audition] et ensuite de confirmer son appréciation anticipée relative à l'absence de portée de ce témoignage". Le recourant n'assortit cette conjecture d'aucune argumentation juridique, ne faisant en particulier pas mention de l'art. 107 al. 2 2ème phrase LTF, mais se contente de suggérer que les autorités cantonales ayant eu à connaître sa cause n'auraient pas été impartiales. Pour le reste, il mélange, dans un mémoire de recours dans lequel les griefs ne sont pas distingués, des considérations portant sur la violation de la présomption d'innocence et du droit d'être entendu.
Au vu de ce qui précède, il est douteux que le recours réponde aux exigences découlant des art. 42 al. 1 et 2 et 106 al. 2 LTF. La question peut demeurer ouverte, compte tenu de ce qui suit.
2.
Le recourant reproche à la cour cantonale d'avoir refusé l'audition du témoin D._.
2.1. Selon l'art. 389 al. 1 CPP, la procédure de recours se fonde sur les preuves administrées pendant la procédure préliminaire et la procédure de première instance. L'art. 389 al. 3 CPP règle les preuves complémentaires. Ainsi, la juridiction de recours administre, d'office ou à la demande d'une partie, les preuves complémentaires nécessaires au traitement du recours. Le droit d'être entendu, consacré par l'art. 107 CPP, garantit aux parties le droit de déposer des propositions relatives aux moyens de preuves (al. 1 let. e). Conformément à l'art. 139 al. 2 CPP, il n'y a pas lieu d'administrer des preuves sur des faits non pertinents, notoires, connus de l'autorité ou déjà suffisamment prouvés. Cette disposition codifie, pour la procédure pénale, la règle jurisprudentielle déduite de l'art. 29 al. 2 Cst. en matière d'appréciation anticipée des preuves (arrêts 6B_974/2019 du 25 octobre 2019 consid. 2.1; 6B_727/2019 du 27 septembre 2019 consid. 1.3.1). Le refus d'instruire ne viole ainsi le droit d'être entendu des parties que si l'appréciation anticipée de la pertinence du moyen de preuve offert, à laquelle le juge a procédé, est entachée d'arbitraire (<ref-ruling> consid. 3.1.3 p. 435; <ref-ruling> consid. 3.3 p. 64; <ref-ruling> consid. 5.3 p. 236).
2.2. La cour cantonale a exposé que D._ - dont le témoignage était censé appuyer la version des événements présentée par le recourant - avait été entendu lors des débats de première instance. Même si le recourant contestait l'appréciation du premier juge concernant l'absence de crédibilité du prénommé, ladite appréciation découlait du contenu même du témoignage et des circonstances dans lesquelles celui-ci avait été proposé, non de l'impression laissée par D._. Une nouvelle audition de ce dernier, au stade des débats d'appel, n'était donc pas nécessaire.
2.3. Le recourant ne démontre pas que cette appréciation anticipée de la preuve serait arbitraire, mais se contente - dans les passages de sa motivation que l'on peut distinguer du grief d'arbitraire dans l'établissement des faits - d'affirmer que la cour cantonale aurait dû directement entendre D._ afin de juger de sa crédibilité. L'autorité précédente a toutefois expressément indiqué que l'impression laissée par le prénommé n'était pas décisive, puisque le contenu des déclarations faites durant les débats de première instance ainsi que les circonstances dans lesquelles le recourant avait signalé l'intérêt du témoignage de D._ permettaient d'apprécier sa portée. On ne voit pas en quoi une telle considération serait insoutenable. Pour le reste, l'argumentation du recourant revient à critiquer l'appréciation des preuves à laquelle s'est livrée la cour cantonale, ce qu'il convient de traiter dans le cadre du grief d'arbitraire dans l'établissement des faits (cf. consid. 3 infra).
3.
Le recourant reproche à l'autorité précédente d'avoir apprécié les preuves et établi les faits de manière arbitraire concernant les événements du 5 juin 2017. Il se plaint en outre, à cet égard, d'une violation de la présomption d'innocence.
3.1. Le Tribunal fédéral n'est pas une autorité d'appel, auprès de laquelle les faits pourraient être rediscutés librement. Il est lié par les constatations de fait de la décision entreprise (art. 105 al. 1 LTF), à moins qu'elles n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, soit pour l'essentiel de façon arbitraire au sens de l'art. 9 Cst. Une décision n'est pas arbitraire du seul fait qu'elle apparaît discutable ou même critiquable; il faut qu'elle soit manifestement insoutenable et cela non seulement dans sa motivation mais aussi dans son résultat. Le Tribunal fédéral n'entre pas en matière sur les critiques de nature appellatoire. La présomption d'innocence, garantie par les art. 10 CPP, 32 al. 1 Cst., 14 par. 2 Pacte ONU II et 6 par. 2 CEDH, ainsi que son corollaire, le principe "in dubio pro reo", concernent tant le fardeau de la preuve que l'appréciation des preuves au sens large. En tant que règle sur le fardeau de la preuve, elle signifie, au stade du jugement, que le fardeau de la preuve incombe à l'accusation et que le doute doit profiter au prévenu. Comme règle d'appréciation des preuves, la présomption d'innocence signifie que le juge ne doit pas se déclarer convaincu de l'existence d'un fait défavorable à l'accusé si, d'un point de vue objectif, il existe des doutes quant à l'existence de ce fait. Il importe peu qu'il subsiste des doutes seulement abstraits et théoriques, qui sont toujours possibles, une certitude absolue ne pouvant être exigée. Il doit s'agir de doutes sérieux et irréductibles, c'est-à-dire de doutes qui s'imposent à l'esprit en fonction de la situation objective. Lorsque l'appréciation des preuves et la constatation des faits sont critiquées en référence au principe "in dubio pro reo", celui-ci n'a pas de portée plus large que l'interdiction de l'arbitraire (<ref-ruling> consid. 1.1 p. 155 s. et les références citées).
3.2. L'autorité précédente a exposé que le recourant n'avait pas contesté avoir consommé beaucoup d'alcool ainsi que des stupéfiants le jour des faits. L'intéressé avait soutenu qu'il n'aurait alors pas été en mesure de conduire, que, en raison de son état, il aurait prêté son véhicule à un inconnu puis aurait, le soir des faits, croisé D._ près de chez lui. Le recourant avait indiqué avoir ensuite oublié sa rencontre avec le prénommé et ne s'en être souvenu que lorsque celui-ci avait évoqué l'épisode au cours d'une discussion. Il avait enfin prétendu avoir, à l'occasion de ses premières déclarations, répondu, par bravade, ne pas vouloir révéler l'identité de la personne ayant conduit son véhicule au moment de l'accident, avant de se raviser et d'évoquer le prêt de sa voiture à un inconnu.
Selon la cour cantonale, il était invraisemblable que le recourant, même s'il se trouvait dans un "état second" le 5 juin 2017, eût pu prêter son véhicule à un inconnu qui l'aurait ramené chez lui avant d'emprunter sa voiture, sans posséder aucun détail sur l'identité de celui-ci ni aucun moyen de le joindre. En outre, le domicile du recourant était éloigné de tout transport public, de sorte que l'on voyait mal comment l'inconnu en question aurait pu ramener le véhicule accidenté à cet endroit puis rentrer chez lui. Le fait que le recourant eût tout d'abord déclaré qu'il n'entendait pas révéler l'identité du conducteur ayant commis l'accident en précisant qu'il n'était pas "une balance", avant de livrer, plus de deux semaines après les faits, son explication impliquant l'intervention d'un inconnu, discréditait encore sa version des événements. S'agissant du témoignage de D._, même en admettant que sa découverte plus de quatre mois après les faits ne fût pas suspecte, celui-ci manquait de crédibilité. Ce témoignage émanait ainsi d'un ami du recourant. En outre, il était invraisemblable que le prénommé pût se souvenir avec autant de précision de l'heure à laquelle il avait - le 5 juin 2017 - pris une douche, croisé le recourant et remarqué la prétendue absence de son véhicule, cela après plusieurs mois. Il n'était pas davantage vraisemblable que D._ se fût souvenu de tels détails, anodins mais décisifs, alors même qu'il avait oublié avoir eu un contact téléphonique avec le recourant vers 18 h le jour des faits, contact qui avait bien eu lieu selon l'analyse du téléphone de ce dernier. Enfin, le témoignage de D._ ne concordait pas avec les déclarations du recourant, puisque le premier nommé avait indiqué avoir vu l'intéressé rentrer à pied alors que le second avait prétendu avoir été ramené en voiture par l'inconnu auquel il aurait par la suite prêté son véhicule. Ces éléments permettaient d'écarter le témoignage de D._ et de retenir que le recourant était bien l'auteur des faits.
3.3. L'argumentation du recourant est irrecevable dans la mesure où elle consiste à critiquer l'appréciation du témoignage de D._ à laquelle s'est livré le tribunal de première instance ainsi que les motifs exprimés afin de lui dénier toute crédibilité, puisque seul le jugement attaqué fait l'objet du recours au Tribunal fédéral (cf. art. 80 al. 1 LTF).
Pour le reste, l'argumentation du recourant se révèle purement appellatoire et, partant, irrecevable, puisqu'elle consiste à substituer sa propre version des événements à celle de la cour cantonale, sans démontrer en quoi celle-ci serait arbitraire. L'intéressé n'explique en particulier aucunement quelle constatation insoutenable aurait pu être tirée des déclarations de D._, mais se borne à affirmer que le témoignage de ce dernier serait crédible et confirmerait ses allégations impliquant l'intervention d'un mystérieux inconnu. Il n'évoque en revanche aucun élément qui ferait apparaître l'état de fait de la cour cantonale comme arbitraire.
4.
Le recours doit être rejeté dans la mesure où il est recevable. Comme ses conclusions étaient dépourvues de chances de succès, l'assistance judiciaire ne peut être accordée (art. 64 al. 1 LTF). Par conséquent, le recourant, qui succombe, supportera les frais judiciaires (art. 66 al. 1 LTF), dont le montant sera fixé en tenant compte de sa situation financière, laquelle n'apparaît pas favorable.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'200 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 30 octobre 2019
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
Le Greffier : Graa