Exemple de sprite uniquement avec des datas

Sujets variés concernant le développement en PureBasic
Azur
Messages : 40
Inscription : ven. 22/mai/2009 23:58

Exemple de sprite uniquement avec des datas

Message par Azur »

Ca se passe en dessous
Dernière modification par Azur le ven. 02/avr./2010 8:49, modifié 1 fois.
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Générateur de numéros de cartes bleues

Message par TazNormand »

Modeste contribution à cette journée :

Code : Tout sélectionner

Structure fool
  Id.w
  X.w
  Y.w
  S.w
EndStructure

Global WindowW=800
Global WindowH=600
Global NewList Nemo.fool()

; Initialisations
  If InitSprite () =0 Or InitKeyboard ()=0 Or InitMouse ()=0 
    MessageRequester ( "Problème" , "Initialisations impossibles"  , 0)
		End
	EndIf
			
;  Ouverture écran
	If OpenWindow (0,0,0,WindowW,WindowH, "Contribution" , #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
		If OpenWindowedScreen ( WindowID (0),0,0,WindowW,WindowH,1,0,0)		
		  ClearScreen(RGB (0,0,128))
	  
		  CreateSprite(0,16,16)
		  Restore nemo
		  StartDrawing(SpriteOutput(0))
  			For i=0 To 15
				  For j=0 To 15
  					Read donnee
					  Plot (j,i,donnee)
				  Next j
			  Next i
		  StopDrawing()
		
		  For i=0 To 15
		    AddElement(Nemo())
		    Nemo()\Id=i
		    Nemo()\X=Random(WindowW-16)+1
		    Nemo()\Y=Random(WindowH-16)+1		    
		    Nemo()\S=Random(5)+1
		  Next i
		  
		  Repeat				
					ExamineKeyboard()          
					ExamineMouse()					
					Event=WindowEvent()
					
					ForEach Nemo()
					  Y=(Sin((Nemo()\X+120)/WindowW* #PI *3)*64)+Nemo()\Y
					  TransparentSpriteColor(0,$000080)		        
					  DisplayTransparentSprite(0,Nemo()\X,Y)	  
		  
					  Nemo()\X=Nemo()\X-Nemo()\S
					  If Nemo()\X<-16
					    Nemo()\X=WindoWW+17
					  EndIf					  
					Next
					
					FlipBuffers()
					ClearScreen(RGB(0,0,128))
				Until KeyboardPushed ( #PB_Key_Escape ) Or Event= #PB_Event_CloseWindow Or MouseButton ( #PB_MouseButton_Right )      
			
		EndIf
	EndIf
	End		

DataSection
  nemo:  
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$0
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$0
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$0
  Data.l $000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF
  Data.l $000080,$000080,$000080,$66FF,$66FF,$66FF,$FFFFFF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF
  Data.l $000080,$000080,$66FF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$66FF,$66FF,$66FF
  Data.l $000080,$66FF,$66FF,$000080,$000080,$FFFFFF,$FFFFFF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF
  Data.l $66FF,$66FF,$66FF,$FFFF,$000080,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$0
  Data.l $66FF,$66FF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$000080,$0
  Data.l $66FF,$66FF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$0
  Data.l $000080,$000080,$66FF,$66FF,$FFFFFF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF
  Data.l $000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$66FF,$66FF,$66FF
  Data.l $000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF
  Data.l $000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$0
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080


  
EndDataSection
EDIT : modification pour un effet non "linéaire"
Image
Image
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Exemple de sprite uniquement avec des datas

Message par TazNormand »

Variante du 2 avril avec bubulles et sous-marins :

Code : Tout sélectionner

Structure fool
	Id.w
	X.w
	Y.w
	S.w
EndStructure

Global WindowW=800
Global WindowH=600
Global NewList Nemo.fool()
Global NewList Bubl.fool()

; Initialisations
	If InitSprite () =0 Or InitKeyboard ()=0 Or InitMouse ()=0 
		MessageRequester ( "Problème" , "Initialisations impossibles"  , 0)
				End
		EndIf
						
;  Ouverture écran
		If OpenWindow (0,0,0,WindowW,WindowH, "Contribution" , #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
				If OpenWindowedScreen ( WindowID (0),0,0,WindowW,WindowH,1,0,0)      
				  ClearScreen(RGB (0,0,128))
				  
					CreateSprite(0,16,16)
					Restore nemo
					StartDrawing(SpriteOutput(0))
							For i=0 To 15
									For j=0 To 15
											Read donnee
											Plot (j,i,donnee)
									Next j
							Next i
					StopDrawing()
					
					CreateSprite(1,16,16)
					Restore bub
					StartDrawing(SpriteOutput(1))
						For i=0 To 15
							For j=0 To 15
								Read donnee
								Plot (j,i,donnee)
							Next j
						Next i
					StopDrawing()
							
					CreateSprite(2,16,16)
					Restore Sub
					StartDrawing(SpriteOutput(2))
						For i=0 To 15
							For j=0 To 15
								Read donnee
								Plot (j,i,donnee)
						  Next j
						Next i
					StopDrawing()
					
					For i=0 To 55
						AddElement(Nemo())
						Nemo()\Id=i
						Nemo()\X=Random(WindowW-16)+1
						Nemo()\Y=Random(WindowH-16)+1          
						Nemo()\S=Random(5)+1
					Next i
					
					For i=0 To 15
					  AddElement(Bubl())
					  Bubl()\X=Random(WindowW-16)+1
						Bubl()\Y=Random(WindowH-16)+1          
						Bubl()\S=Random(5)+1
					Next i
					
					SubMarine.fool\Id=0
					SubMarine.fool\X=601
					SubMarine.fool\Y=Random(WindowW)+1
					SubMarine.fool\S=Random(6)+1
					aleat=Random(100)+1
					
					Repeat            
										ExamineKeyboard()          
										ExamineMouse()               
										Event=WindowEvent()
										
										ForEach Nemo()
											Y=(Sin((Nemo()\X+120)/WindowW* #PI *3)*64)+Nemo()\Y
											TransparentSpriteColor(0,$000080)              
											DisplayTransparentSprite(0,Nemo()\X,Y)     
					
											Nemo()\X=Nemo()\X-Nemo()\S
											If Nemo()\X<-16
												Nemo()\X=WindoWW+17
											EndIf                 
										Next
										
										ForEach Bubl()
											X=(Sin((Bubl()\Y+120)/WindowH* #PI *3)*64)+Bubl()\X
											TransparentSpriteColor(1,$000080)              
											DisplayTransparentSprite(1,X,Bubl()\Y)     
					
											Bubl()\Y=Bubl()\Y-Bubl()\S
											If Bubl()\Y<-16
												Bubl()\Y=WindowH+17
											EndIf                 
										Next

										If aleat%20=0
										  TransparentSpriteColor(2,$000080)              
											DisplayTransparentSprite(2,Submarine.fool\X,SubMarine.fool\Y)
											SubMarine.fool\X=SubMarine.fool\X-SubMarine.fool\S
											If SubMarine.fool\X<-17
											  SubMarine.fool\X=601
											  aleat=Random(100)+1
											  SubMarine.fool\Y=Random(WindowW)+1
											  SubMarine.fool\S=Random(6)+1
											EndIf
										Else
										  aleat=Random(100)+1
										EndIf										
										
										FlipBuffers()
										ClearScreen(RGB(0,0,128))
								Until KeyboardPushed ( #PB_Key_Escape ) Or Event= #PB_Event_CloseWindow Or MouseButton ( #PB_MouseButton_Right )
						
				EndIf
		EndIf
		End      

DataSection
nemo:  
	Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
	Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080
	Data.l $000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080
	Data.l $000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF
	Data.l $000080,$000080,$000080,$66FF,$66FF,$66FF,$FFFFFF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF
	Data.l $000080,$000080,$66FF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$66FF,$66FF,$66FF
	Data.l $000080,$66FF,$66FF,$000080,$000080,$FFFFFF,$FFFFFF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF
	Data.l $66FF,$66FF,$66FF,$FFFF,$000080,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$000080
	Data.l $66FF,$66FF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$000080,$000080
	Data.l $66FF,$66FF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$000080
	Data.l $000080,$000080,$66FF,$66FF,$FFFFFF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF
	Data.l $000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$66FF,$66FF,$66FF
	Data.l $000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF
	Data.l $000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF
	Data.l $000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080
	Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
	
Bub:
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$000080,$FFFFFF,$FFFFFF,$FFFFFF,$FFFFFF,$FFFFFF,$FFFFFF,$000080,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$FFFFFF,$FFFFFF,$000080,$000080,$FFFFFF,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$FFFFFF,$000080,$000080,$000080
  Data.l $000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080
  Data.l $000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080
  Data.l $000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080
  Data.l $000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080
  Data.l $000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$000080,$FFFFFF,$FFFFFF,$FFFFFF,$FFFFFF,$FFFFFF,$FFFFFF,$000080,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
  
Sub:
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$000080,$FF00,$FF00,$FF00,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$000080,$FF00,$FF00,$FF00,$FF00,$000080,$000080,$000080,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$000080,$FF00,$FF00,$FF00,$FF00,$000080,$000080,$000080,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$FF00,$FF00,$000080,$000080,$000080,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$FF00,$FF00,$000080,$000080,$000080,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$000080,$000080,$80
  Data.l $000080,$000080,$FF00,$99FFFF,$99FFFF,$FF00,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$FF00,$000080,$FF00
  Data.l $000080,$FF00,$99FFFF,$99FFFF,$99FFFF,$FF00,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$FF00,$FF00
  Data.l $000080,$FF00,$FF00,$FF00,$FF00,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$FF00,$FF00
  Data.l $000080,$FF00,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$FF00,$000080,$FF00
  Data.l $000080,$000080,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
  Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
	
EndDataSection
Image
Image
Azur
Messages : 40
Inscription : ven. 22/mai/2009 23:58

Re: Exemple de sprite uniquement avec des datas

Message par Azur »

Héhé :)

Utilises-tu un script qui te transforme une image bitmap en une liste de data, ou fais-tu ça à la mano ?

En tout cas c'est plus dans l'esprit de ce que j'aurais voulu faire dés le début.

Petite anecdote : Collégien et possédant un CPC, je me rendis comme chaque mois chez mon marchand de journaux pour acheter le dernier Amstrad100%. Comme souvent le magazine proposait plusieurs pages de listing sous forme de data avec un checksum en bout de chaque ligne, et ce mois la, trois ou quatre pages complètes nous proposaient de programmer le copieur de cassettes ultime, qui pouvait copier les tous derniers jeux commerciaux et s'affranchir des toutes dernières protections ! Quelle aubaine !
C'était un mercredi ou samedi après midi et j'étais avec un amis chez moi, ni une ni deux, l'un le magazine entre les mains, l'autre au clavier et en avant pour plusieurs pages de " data 2c,7e,aa,30,12 .........."
Au bout d'un moment j'avais le bout des doigts cubiques à force de taper mais ça devenait bon...
alors:
cls
run
Alors est apparu à l'écran quelques choses qui ressemble beaucoup à ton bout de script avec cette mention: "Le piratage est illégal ! "
C'était en effet le magazine du mois d'avril
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Exemple de sprite uniquement avec des datas

Message par Backup »

Azur a écrit :Héhé :)

Utilises-tu un script qui te transforme une image bitmap en une liste de data, ou fais-tu ça à la mano ?

http://www.purebasic.fr/french/viewtopi ... t=img+data

ou bien là :
http://www.purebasic.fr/french/viewtopi ... t=img2data

;)
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Exemple de sprite uniquement avec des datas

Message par TazNormand »

Salut

alors c'est tout con, c'est de la "mano" : je crée sous EXCEL une matrice de 16x16, et je colore les cases de la forme que je veux et avec la couleur que je souhaite.

Imageimagik.fr

ensuite une vulgaire macro me ressort les codes hexa des couleurs :

Code : Tout sélectionner

Sub sprite()
  Set f1 = ActiveSheet
  For y = 1 To 16
    f1.Cells(y, 19).Value = ""
    For x = 1 To 16
      f1.Cells(y, 19).Value = f1.Cells(y, 19).Value & "$" & Hex(f1.Cells(y, x).Interior.Color) & ","
    Next x
    f1.Cells(y, 19).Value = Left(f1.Cells(y, 19).Value, Len(f1.Cells(y, 19).Value) - 1)
  Next y
End Sub
ça remplace pas un vrai éditeur de sprites bitmap, mais libre à toi de le programmer en PureBasic :wink:

Concernant A100%, j'en étais aussi. J'avais même TOUS les numéros, mais malheureusement, sous prétexte de faire de la place au grenier, mes parents ont tout jeté dans un container à recyclage à papier, et je ne l'ai appris qu'un mois plus tard : j'étais furax, mais le mal était fait :cry:

J'ai deux projets en cours (si si), dont un est un remake de la cassette de démonstration de l' AMSTRAD CPC 464. C'est pas la démo qui tue, mais j'ai eu envie de faire un "parallèle".
Image
Image
Azur
Messages : 40
Inscription : ven. 22/mai/2009 23:58

Re: Exemple de sprite uniquement avec des datas

Message par Azur »

Je ne me souvenais plus de cette k7 de démonstration. Quelle époque quand même, en ce temps là l'imagination faisait 90% de l'immersion.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Exemple de sprite uniquement avec des datas

Message par Backup »

hey ! vous avez fumé la moquette ou quoi ?

tu dessine ton sprite sous paint, paintshop pro, pixia , ou que sais-je

puis vous importez direct dans purebasic avec les fonctions qui vont bien

et si vous voulez du data regardez les lien que j'ai mis ...

j'hallucine utiliser Exel et une macro pour faire un sprite :roll: :lol:

quoi? je suis moqueur ? ..... pfffff mais non :lol:
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Message par TazNormand »

@Dobro : C'est du fait à l'arrache, je le reconnais, mais c'était pour un petit code de "1er avril" :oops:

Il y a plein d'outils pour créer des sprites, voir tout simplement des icônes que tu "exportes" au format PNG, et qui sont à mon avis plus adaptés que Paint & co pour un malheureux sprite.

Je me demande même si je n'ai pas vu traîner un code d'éditeur de sprite sur le forum (français ou anglais... je ne me rappelle plus) ; une petite recherche devrait aider :D

@Azur : C'est clair que ça a pas trop bien vieilli, mais bon, je suis d'une génération dite maintenant de vieux cons nostalgiques des 8 bits. Mes connaissances PB sont plutôt ras les paquerettes, mais avoir appris le basic sur l'amstrad cpc m'est d'une grande aide.

A propos, as-tu connu les "deulignes" dans le regretté magazine hebdogiciel ?

ça c'était le pied, comme les PurePunch de Djes.
Image
Image
Azur
Messages : 40
Inscription : ven. 22/mai/2009 23:58

Re: Exemple de sprite uniquement avec des datas

Message par Azur »

Lol Dobro, des fois je me demande si c'est un opérateur humain ou si tu t'es fais remplacer par un de tes scripts AI pour réponse automatique sur les forums :)
Pour ma part j'ai arrête la moquette y'a quelques années, à présent je suis passé au lino, c'est plus cher, mais ça dope ma créativité et ma vie sociale.
En ce qui me concerne j'utilise PB depuis la 3.91 je crois, et donc on est ok pour les fonctions de chargement d'images, mais il se trouve que dans le cas des scripts postés ci-dessus il est tout de même plus pratique d'avoir des lignes de datas pour générer les images ça évite d'avoir une image à DownLoad en plus du copier coller du script, mais bon ça ce sera pas un scoop pour Dobro qui est par ailleurs l'auteur de quelques scripts qui mériteraient de figurer au panthéon de ce forum. Donc voila c'était juste pour engager la conversation sur le sujet du comment créez vous vos sprites 'embarqués' dans vos applis. Je dois dire que je trouve la solution de TazNormand pas plus bête qu'une autre, quand on sait que des gars sont fans de pixelart par exemple, si c'est leur truc bah pourquoi pas... Et puis si j'ai bien compris ça se fait en une manip, sa procédure permet d'obtenir la liste de datas à l'aide d'un soft unique, donc bon, sur le principe je ne jugerai pas, pour de petits pictos ou icônes l'approche créative est pour le moins inattendue, et sur la petite demo ci-dessus le résultat est assez intéressant, assez oldschool, c'est ce qui avait attiré ma curiosité d'ailleurs.
J'aurais eu tendance de but en blanc à utiliser PB pour générer ma liste de datas mais ne connaissant pas excel ( pour la plus grande joie de mon banquier ), je me coucherai moins bête ce soir.
Voila j'ai fais un peu long mais en fait quand je rédige sur un forum je le fais pour les participants mais aussi pour les lecteurs lambdas qui peuvent être néophytes complets c'est pourquoi ça peut paraitre des fois un peu bébête.
M Dobro, en toute amitié bien sur, avec tout le respect que je vous dois et la petite pointe d'humour que j'affectionne tant.

Pour le endeuxlignes dans hebdogiciel je ne me souviens pas de cette rubrique, et puis en fait j'ai pas acheté ce journal trop longtemps, je crois qu'il n'était plus distribué par un moment. Et puis A100% était vraiment le top pour les apprentis programmeurs à l'époque, les cours de prog Z80 par les gars du groupe Logon System c'était dingue, pour ceux qui n'ont pas connu c'était un groupe de demomackers haut niveau qui montraient par exemple comment programmer le chipset vidéo ( CRTC 6845 ) en expliquant tout, les trames le vertical blanking le timing les ruptures, à l'époque y'avait pas internet et c'était carrément de l'or, et on a appréhendé la programmation d'une façon différente, plus comme la combinaison d'évènements au niveau hardware, pour ma part c'est une philosophie qui ne m'a jamais quitté et que j'applique toujours indirectement dans mes réalisations.
De nos jours ça a bien changé, et, à ce propos je ne pense pas être le seul ici à avoir connu cette époque et à avoir trouvé dans purebasic un moyen simple et pourtant relativement "bas niveau" de programmer.
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

Re: Exemple de sprite uniquement avec des datas

Message par beauregard »

je viens de lire de vieux mag de joystick sur Graftgold, les problèmes avec ces gloutons ignares de distributeurs et éditeurs de l'époque, arf mais quel injustice. Andrew Braybrook, l'un des meilleurs codeur 68000 dont je suis tombé en admiration à la vue de Fire&Ice à la fluidité absolu, sans cheveux long, c'est un peu triste:
http://www.nemmelheim.de/graftgold/
http://www.nemmelheim.de/graftgold/downloads.html
C'est là où je me dis qu'un tel talent victime de la cupidité (il vend des assurances maintenant)... l'humanité est définitivement stupide.
Répondre