[NEW] STAR TREK pour ALICE 32/90

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
Dominique
Messages : 828
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [NEW] un superbe jeu d'action spatial pour ALICE 32/90

Message par Dominique »

Excellent !
Merci pour toutes ces infos.
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: [NEW] un superbe jeu d'action spatial pour ALICE 32/90

Message par Carl »

Image4.jpg
Image4.jpg (46.83 Kio) Consulté 4021 fois
pourrait bien y avoir Phil dans le groupe :roll:

bravo pour ce nouveau développement...

Carl
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [NEW] un superbe jeu d'action spatial pour ALICE 32/90

Message par 6502man »

:lol: :lol: :lol: :lol:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [NEW] STAR TREK pour ALICE 32/90

Message par 6502man »

J'ai commencé la gestion des déplacements ennemis et comme je le pensais ça prends un peu plus de temps :wink:

Aujourd'hui je n'aurais pas assez de temps pour continuer donc la suite de cette aventure demain soir normalement :D
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [NEW] STAR TREK pour ALICE 32/90

Message par 6502man »

J'ai bien avancé sur la gestion des déplacements des ennemis, il me restent à peaufiner ça.

J'ai prévu un déplacement différent pour chaque type d'ennemis.

J'espère demain avoir le temps de terminer cette partie et le détailler dans le post, à suivre...
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
yves
Messages : 464
Inscription : 12 sept. 2007 21:32

Re: [NEW] STAR TREK pour ALICE 32/90

Message par yves »

géant, bravo pour le chemin déjà parcouru !
Avatar de l’utilisateur
Dominique
Messages : 828
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [NEW] STAR TREK pour ALICE 32/90

Message par Dominique »

J'ai hâte de voir ça Phil. Dans l'idée où on voudrait l'adapter au VG5K, pourrais-tu donner le dessin des sprites ? Pas tout de suite, mais plus tard.
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [NEW] STAR TREK pour ALICE 32/90

Message par 6502man »

Pas de problèmes ce sont les sprites d'origines des version TI99 et coleco recadrés au dimension des caractères du vdp alice 8X10 :wink:


Aujourd'hui je n'ai pas pu avancer :(

Demain j'espère pouvoir finir la partie mouvements ennemis ...
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: [NEW] STAR TREK pour ALICE 32/90

Message par Carl »

le VDP Alice32/90 est le même que celui du VG5000, donc tes sprites sont compatibles VG5K

carl
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [NEW] STAR TREK pour ALICE 32/90

Message par 6502man »

Oui tout a fait :wink:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
Dominique
Messages : 828
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [NEW] STAR TREK pour ALICE 32/90

Message par Dominique »

Eh oui Carl, et en plus ça me permettrait de ressusciter le vieux Forth du VG5K avec l'intention de le terminer et de le documenter cette fois.
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: [NEW] STAR TREK pour ALICE 32/90

Message par Carl »

Ce serait bien, avec la doc, je pourrai tenter de m'y mettre :wink:

Carl
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [NEW] STAR TREK pour ALICE 32/90

Message par 6502man »

Bon les déplacements ennemis sont fait.

8) IA MOVE :
Pour la gestion des déplacements ennemis, j'ai opté pour cette solution :
- chaque ennemi utilise un déplacement spécifique.
- les starbases ne ce déplacent pas.
- il y a une temporisation pour ralentir les déplacements ennemis ( a chaque itération de la routine IA_MOVE un compteur est décrémenté lorsqu'il arrive à zero un déplacement est effectué pour les KLINGON et UNKNOW ).
- a chaque itération de la routine IA_MOVE un seul ennemi est déplacé a la fois (par type d'ennemis).

ce qui donne ceci:

Pour les KLINGON:

Code : Tout sélectionner

;-------------------------------------------------
;		IA MOVE
;	Gestion des déplacements des ennemies
;	Klingons ce deplacent en chassent l'enterprise assez lentement
;	starbase ne ce deplacent pas
;	Saucer ce déplacent très vite aléatoirement
;	meteor ce déplacent rectilignement et lentement
;	unknow ce déplacent en warping aléatoirement
;-------------------------------------------------	
IaMove

; KLINGON  MOVEMENT
		LDAA TempoIA	;	temporisation déplacement ennemis
		DECA
		STAA TempoIA
		CMPA #00
		BNE FinIaMovey
			LDAA #05
			STAA TempoIA	;		"		"		"		"

	LDAB IdxEnnemy		;	on récupere l'index de l'ennemi
	ADDB #02			;	on addition 2 (coordonnées h,v)
	STAB IdxEnnemy		;	on met a jour l'index
	CMPB #20			;	est que le dernier ennemi à etait fait
	BMI StartIaMove		;	si inférieur alors non on passe au traitement
		CLR IdxEnnemy	;	sinon on réinitialise l'index de l'ennemi
StartIaMove
	LDX #Klingons		;  on place le pointeur sur les données Klingons
	LDAB IdxEnnemy		;	on place l'index de l'ennemi en B
	ABX					;	on l'addition a X pour placer le pointeur sur l'ennemi a traiter
	LDAA $0,X			;	on charge la permière valeur  ( X )
	CMPA #00			;	est il actif ( >0 )
	BEQ FinIaMovey		;	Oui on va a la fin
	CMPA JX				;	on compare avec la coordonnées X du joueur
	BMI IaMoveINCx		;	Est ce plus petit ?
		TAB				;	tranfert A dans B
		SUBB JX			;	 on soustrait la coordonnée X du joueur
		CMPB #03		;	on compare le resultat à 1
		BLS IaMoveOKx	;	si c'est egale on bouge pas l'ennemi
		DECA			;	si non on decremente sa position
		JMP IaMOveContx	;	saut a la fin du deplace. X
IaMoveINCx
		TAB					;	transfert A dans B
		SUBB JX				;	 on soustrait la coordonnée X du joueur
		CMPB #03			;	le résultat est il différent de 3
		BLS IaMoveOKx		;	si inférieur ou égale on ce déplace pas
		INCA			;	on incremente la position X de l'ennemi
IaMOveContx
	CMPA #0				;	est ce que la position de l'ennemi est egale à 0
	BNE NotWarpX		;	si non on passe a la suite
		LDAA #12		;	si oui on fait un saut de l'autre côté
		JMP IaMoveOKx	;	on va a la fin du deplace. X
NotWarpX
	CMPA #13			;	est ce que la position est egale à 13
	BNE IaMoveOKx		;	si non on valide la coordonnée X
		LDAA #01			;	si oui on saute de l'autre côté
IaMoveOKx
	STAA Gener_Radx		;$0,X	;	on écrit la nouvelle coordonnées X de l'ennemi
FinIaMoveX


	LDAA $1,X			;	idem avec Y
	CMPA JY
	BMI IaMoveINCy
			TAB
			SUBB JY
			CMPB #03
			BLS IaMoveOKy
		DECA
		JMP IaMOveConty
IaMoveINCy
			TAB
			SUBB JY
			CMPB #03
			BLS IaMoveOKy
		INCA
IaMOveConty
	CMPA #0
	BNE NotWarpY
		LDAA #20
		JMP IaMoveOKy
NotWarpY
	CMPA #21
	BNE IaMoveOKy
		LDAA #01
IaMoveOKy
	STAA Gener_Rady	;$0,X
FinIaMovey
	JSR Validat_Movement
Pour les SAUCER:

Code : Tout sélectionner

;	SAUCER MOVEMENT
	LDAB IdxSaucer
	ADDB #02
	STAB IdxSaucer
	CMPB #08
	BMI StartSaucerMove
		CLR IdxSaucer
StartSaucerMove
	LDX #Saucer
	LDAB IdxSaucer
	ABX
	LDAA $0,X
	CMPA #00				;	est il actif ( >0 )
	BEQ Roll_AleaSaucer
	ADDA AleaSaucer
	CMPA #13
	BMI OK_saucerx
		LDAA #01
OK_saucerx	
	STAA Gener_Radx
	
	LDAA $1,X
	ADDA AleaSaucer+1
	CMPA #21
	BMI Ok_saucery
		LDAA #01
Ok_saucery	
	STAA Gener_Rady
	JSR Validat_Movement


;	ROLL ALEASAUCER
Roll_AleaSaucer
	LDAB #24
	LDX #AleaSaucer+23
Boucle_Alea_Roll
	LDAA $0,X
	STAA $1,X
	DEX
	DECB
	BNE Boucle_Alea_Roll
	LDAA AleaSaucer+24
	STAA AleaSaucer
Pour les METEOR:

Code : Tout sélectionner

;	METEOR MOVEMENT
	LDAB IdxMeteor
	ADDB #02
	STAB IdxMeteor
	CMPB #20
	BMI StartMeteorMove
		CLR IdxMeteor
StartMeteorMove		
	LDX #Meteor
	LDAB IdxMeteor
	ABX
	LDAA $0,X
	CMPA #00
	BEQ Not_active_Meteor
	ADDA AleaSaucer
	CMPA #21
	BNE NOT_Meteor_Border
		LDAA #01
NOT_Meteor_Border
	STAA $0,X
Not_active_Meteor
Pour les UNKNOW:

Code : Tout sélectionner



;	UNKNOW  MOVEMENT
	LDAA TempoIA+1
	DECA
	STAA TempoIA+1
	BNE Fin_Unknow_move
		LDAA #15
		STAA TempoIA+1

	LDAB IdxUnknow
	ADDB #02
	STAB IdxUnknow
	CMPB #08
	BMI Unknow_Move
		CLR IdxUnknow
Unknow_Move
	LDX #Unknow
		LDAB IdxUnknow
		ABX
	STX Temp_Adrs_Ennrmy
Start_Unknow_Move
	LDX Temp_Adrs_Ennrmy
	LDAA $0,X
		CMPA #00						;	est il actif ( >0 )
		BEQ Fin_Unknow_move
	STAA Gener_Radx
	INX
	LDAA $0,X
	LDAB WarpingUnknow
	ABA
	CMPA #13
	BMI Not_Border_Unknow
	SUBA #12
Not_Border_Unknow
	STAA Gener_Rady
	JSR Validat_Movement
;   ROLL ALEA UNKNOW
	LDAB #15
	LDX #WarpingUnknow+14
Boucle_Alea_Unknow
	LDAA $0,X
	STAA $1,X
	DEX
	DECB
	BNE Boucle_Alea_Unknow
	LDAA WarpingUnknow+15
	STAA WarpingUnknow
Fin_Unknow_move	
La routine validate_movement pour s'assurer avant d’écrire la nouvelle coordonnées d'un ennemi qu'il n'y a pas déjà un objet a cet endroit ;)

Code : Tout sélectionner

	
Validat_Movement
	STX Temp_Adrs_Ennrmy		;		on sauvegarde le pointeur
	LDX #MapSecteur
	LDAB Gener_Radx
	ABX
	LDAA Gener_Rady
	LDAB #20
	MUL
	ABX
	LDAA $0,X
	CMPA #0
	BNE COLISS_Case
	LDX Temp_Adrs_Ennrmy		;	on recupere le pointeur
	LDAA Gener_Radx
	STAA $0,X
	LDAA Gener_Rady
	STAA $1,X
COLISS_Case
	RTS
Les variables de travail:

Code : Tout sélectionner

TempoIA		.DB 05,15
IdxEnnemy   	.DB 00
IdxSaucer  	.DB 00
IdxMeteor	        .DB 00
IdxUnknow        .DB 00
AleaSaucer	.DB 00,01,01,00,01,00,00,01,00,00,01,01,00,00,01,01,01,00,01,00,01,01,01,00,00
WarpingUnknow	.DB	05,03,07,09,15,04,08,02,01,11,03,06,01,09,00,00
;-------------------------------------------------

Voila pour aujourd'hui :D

Reste a faire la gestion des tirs ennemis, les tirs du joueur, la gestion des dégats, améliorer le POV ....
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
Dominique
Messages : 828
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [NEW] STAR TREK pour ALICE 32/90

Message par Dominique »

Merci Phil !
Même si je suis dans mon projet, crois moi que je suis en train de mettre au chaud ton Star Trek. C'est la première fois que je vois les codes d'un jeu tel que celui ci et ça me tente énormément !!!
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: [NEW] STAR TREK pour ALICE 32/90

Message par Carl »

pour l'occasion, j'ai voulu faire un screen videotext compatible VDP Alice / VG5000
Image3.jpg
Image3.jpg (17.39 Kio) Consulté 3862 fois

Code : Tout sélectionner

610 DATA 12,31,65,86,14,27,85,27,64,47,27,81,32,27,68,44
610 DATA 12,31,65,86,14,27,85,27,64,47,27,81,32,27,68,44
620 DATA 32,27,64,39,27,82,43,27,84,47,31,66,76,14,27,85
630 DATA 27,64,63,111,9,27,84,63,9,9,9,9,9,27,85,55
640 DATA 114,27,81,104,27,84,27,69,37,27,81,32,27,86,122,27
650 DATA 83,27,71,125,27,86,27,69,35,27,82,122,27,64,115,27
660 DATA 84,43,27,85,111,8,10,27,81,61,111,31,68,73,14,27
670 DATA 81,27,64,119,27,85,126,31,71,71,14,27,82,27,64,63
680 DATA 8,8,10,27,81,53,27,87,27,67,33,27,80,27,66,49
690 DATA 31,72,81,14,27,65,112,27,71,120,27,84,116,27,85,27
700 DATA 64,123,59,27,83,47,27,85,47,27,84,111,31,73,70,14
710 DATA 27,84,27,66,37,27,87,48,43,27,83,27,64,111,9,9
720 DATA 9,9,9,27,85,47,27,83,39,27,87,27,66,37,32,42
730 DATA 27,69,39,27,65,35,47,27,83,109,27,68,124,27,87,27
740 DATA 65,115,27,68,47,27,82,27,64,43,27,86,47,31,74,70
750 DATA 14,27,85,27,64,105,27,82,27,71,97,27,81,35,27,87
760 DATA 32,27,68,43,27,80,48,9,9,27,65,96,27,87,33,32
770 DATA 18,67,27,82,27,69,99,27,83,122,27,84,27,71,43,27
780 DATA 80,47,27,81,27,67,45,27,82,27,64,107,124,27,81,27
790 DATA 71,43,27,83,111,27,86,125,27,84,124,27,80,124,27,81
800 DATA 112,112,27,80,124,124,27,81,60,27,84,27,64,107,31,75
810 DATA 70,14,27,81,27,67,101,27,87,27,70,53,27,65,47,27
820 DATA 80,27,66,51,27,87,60,27,80,53,9,27,68,96,27,87
830 DATA 27,66,55,32,18,68,27,86,27,64,35,27,85,39,9,27
840 DATA 86,63,43,9,9,9,52,27,87,32,32,32,27,69,112,120
850 DATA 27,65,124,124,27,86,110,27,80,50,31,76,70,14,27,85
860 DATA 27,65,106,27,87,32,27,69,122,27,82,27,64,53,27,71
870 DATA 55,27,80,27,70,33,9,27,66,106,27,87,32,18,70,34
880 DATA 32,27,69,34,35,27,70,35,32,27,66,34,39,32,32,27
890 DATA 85,32,27,80,116,27,68,112,112,27,66,34,51,27,68,33
900 DATA 31,77,70,14,27,81,27,67,41,27,86,27,71,43,27,85
910 DATA 27,67,49,27,87,27,68,47,27,86,108,9,27,85,27,64
920 DATA 35,27,81,53,27,87,32,18,82,27,67,33,27,66,35,27
930 DATA 65,35,27,80,27,66,33,13,10,27,65,112,9,9,9,9
940 DATA 27,68,34,27,87,27,69,117,27,70,99,27,67,43,27,70
950 DATA 50,27,81,27,68,39,27,87,27,66,47,27,69,39,27,66
960 DATA 38,109,27,86,121,27,87,27,69,61,32,18,72,27,67,48
970 DATA 32,18,71,27,80,27,69,33,13,10,27,71,47,27,67,37
980 DATA 27,70,112,27,66,112,27,87,27,68,39,27,64,35,27,68
990 DATA 107,27,83,107,27,80,27,65,35,27,68,34,27,70,96,27
1000 DATA 87,27,66,53,32,32,120,27,70,60,32,18,70,27,69,96
1010 DATA 27,65,116,27,69,112,113,27,70,48,32,18,69,27,65,122
1020 DATA 13,10,27,68,47,27,69,39,32,32,43,27,68,47,27,82
1030 DATA 27,64,43,27,68,104,27,80,33,9,27,66,106,27,70,106
1040 DATA 27,83,27,71,103,27,85,61,27,82,114,27,87,32,18,71
1050 DATA 27,82,125,27,81,112,27,86,27,64,43,27,84,111,27,82
1060 DATA 116,27,71,35,115,27,87,32,32,27,83,63,27,80,27,66
1070 DATA 55,13,10,27,87,27,69,35,35,45,27,66,44,27,65,46
1080 DATA 27,69,60,27,70,62,27,84,27,66,105,27,64,110,9,9
1090 DATA 9,27,69,62,27,82,101,27,83,27,70,55,27,71,106,27
1100 DATA 86,103,27,87,32,18,72,27,83,125,27,82,124,27,87,32
1110 DATA 32,32,27,81,63,27,80,27,69,37,13,10,27,68,35,27
1120 DATA 70,35,27,67,43,27,81,27,71,35,35,27,85,37,27,82
1130 DATA 27,68,109,27,87,32,27,69,43,27,82,27,64,111,9,9
1140 DATA 9,9,27,83,27,70,47,27,71,126,117,27,87,32,32,27
1150 DATA 83,119,27,82,49,27,83,27,69,45,27,87,124,27,70,124
1160 DATA 27,66,124,27,65,124,27,68,112,112,27,69,48,32,32,27
1170 DATA 81,27,66,115,27,80,27,70,113,27,65,112,27,70,120,27
1180 DATA 87,27,68,47,27,86,27,64,39,27,85,111,27,87,27,65
1190 DATA 39,35,27,66,35,35,115,27,69,61,32,27,66,42,27,69
1200 DATA 39,32,32,34,27,82,27,64,107,9,9,9,27,86,125,27
1210 DATA 87,116,27,86,27,69,113,27,82,27,71,115,27,87,32,32
1220 DATA 32,27,70,99,27,82,27,69,107,27,84,27,71,35,43,27
1230 DATA 81,44,27,86,27,66,99,113,27,87,27,68,43,27,66,37
1240 DATA 32,27,70,35,32,18,68,27,69,35,32,32,27,80,27,65
1250 DATA 35,35,9,27,87,27,69,117,32,18,69,42,27,82,27,64
1260 DATA 111,9,9,9,9,9,27,86,116,27,82,27,71,111,27,87
1270 DATA 32,32,32,27,67,35,35,27,69,35,27,65,47,27,64,47
1280 DATA 27,66,39,32,18,75,27,81,27,64,111,9,9,9,27,82
1290 DATA 124,27,87,27,65,124,27,69,112,32,18,67,42,27,83,27
1300 DATA 64,111,9,9,9,9,9,27,81,125,27,71,35,27,80,47
1310 DATA 27,82,47,27,86,47,47,27,87,32,27,82,111,27,87,32
1320 DATA 27,86,63,27,82,47,27,87,32,18,74,27,80,27,65,43
1330 DATA 9,9,9,9,9,9,35,27,70,43,27,81,27,71,35,27
1340 DATA 85,47,27,87,32,27,82,125,27,83,27,64,43,31,86,88
1350 DATA 14,27,81,27,64,54,27,85,44,124,27,65,115,27,64,114
1360 DATA 115,115,27,81,27,66,45,27,71,46,47,18,71,31,87,76
1370 DATA 14,27,85,27,64,125,27,82,116,27,84,27,71,35,27,80
1380 DATA 27,66,45,27,69,36,27,68,112,96,27,66,112,112,27,68
1390 DATA 48,9,9,27,87,27,69,55,27,67,106,27,69,115,27,83
1400 DATA 27,65,59,27,64,43,27,85,47,13,9,9,9,9,10,27
1410 DATA 84,123,31,88,83,14,27,84,27,64,124,27,83,124,27,86
1420 DATA 126,9,27,84,55,27,87,27,67,33,32,32,35,27,66,35
1430 DATA 27,70,46,27,80,27,66,61,27,67,124,27,70,116,27,69
1440 DATA 112,255
Répondre