Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3460 connectés 

  FORUM HardWare.fr
  Programmation

  [Gros newbie en C] Pkoi ca clignote en mode 13h?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Gros newbie en C] Pkoi ca clignote en mode 13h?

n°71389
leboss
Posté le 11-11-2001 à 15:38:30  profilanswer
 

Voila c un prog tt simple ( je debute)
en fait c pour faire defiler des etoiles de gauche a droite de l'ecran avec des couleurs aleatoirse voila...
Mais le bleme c ke mes etoiles ki se situent en haut de l'ecran clignotent alors ke celles d'en bas non!!
Bon voila le code zsource (l'est po long) vs pouvez me dire oun est l'erreur merci!!
ca m'aidera a fond pour continuer paske bloker des le debut... snif ca decourage un max thx
 
#include <conio.h>
#include <stdlib.h>
#include <mem.h>
#define nbretoiles 50
 
char *ecran =  (char *) (0xA0000000L);
int etoilex[nbretoiles];
int etoiley[nbretoiles];
int couleur[nbretoiles];
int i = 0;
 
void setmode(unsigned int mode){
asm{
MOV AX, mode
INT 0x10
}
}
 
void putpixel(int x, int y, unsigned char coul){
    ecran[(y*320)+x] = coul;
}
 
void cls(unsigned char coul){
memset (ecran,coul,64000);
}
 
void initialisation(){
for (i=0;i<nbretoiles;i++){
etoilex[i]=random(320);
etoiley[i]=random(200);
couleur[i]=random(255);
}
}
void affichage(){
cls(0);
for(i=0;i<nbretoiles;i++){
putpixel(etoilex[i],etoiley[i],couleur[i]);
putpixel(etoilex[i]+1,etoiley[i],couleur[i]);
putpixel(etoilex[i],etoiley[i]+1,couleur[i]);
putpixel(etoilex[i],etoiley[i]-1,couleur[i]);
putpixel(etoilex[i]-1,etoiley[i],couleur[i]-1);
putpixel(etoilex[i]-2,etoiley[i],couleur[i]-2);
}
}
 
void incrementation(){
for (i=0;i<nbretoiles;i++)
etoilex[i]++;
}
 
void infini(){
for(i=0;i<nbretoiles;i++)
if (etoilex[i]==319){
etoilex[i]=0;
etoiley[i]=random(200);
}
}
 
 
void main(){
setmode(0x13);
initialisation();
do{
affichage();
incrementation();
infini();
}while (!kbhit());
}

 

[edtdd]--Message édité par leboss--[/edtdd]

mood
Publicité
Posté le 11-11-2001 à 15:38:30  profilanswer
 

n°71392
youdontcar​e
Posté le 11-11-2001 à 15:49:53  profilanswer
 

parce que tu n'attends nulle part la vbl ...
 
si tu veux tout comprendre, y'a plein de tutoriaux qui datent de 5/6 ans dispo un peu partout. sinon tu peux faire ça sous dx ou ogl (bieen) parce que le 13h, ... hum.

n°71393
MrTonio
Posté le 11-11-2001 à 15:51:52  profilanswer
 

Balaise pour un débutant :eek2:


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
n°71395
leboss
Posté le 11-11-2001 à 15:58:04  profilanswer
 

ouiiiiiiiiin comprend rien :D
youdontcare : bah en fait g essayé de voir un peun des tutorial dx ou opengl bah... j'arrive meme po a creer une fenetre windows... sous borland c++... alors je me susi dis ke j'allais bien maitriser la prog graphique dos puis je m'aventurerais vers opengl!
personne peut compiler ca et voir ce ke ca donne?
Mr tonio t serieux? lol si c vrai bah ca me fait chaud au coeur paske g t degouté de voir ke j'arrivais a rien foutre thx

n°71397
leboss
Posté le 11-11-2001 à 15:58:59  profilanswer
 

euh c koi la vbl?

n°71399
verdoux
And I'm still waiting
Posté le 11-11-2001 à 16:02:51  profilanswer
 

La prog graphique DOS, c'est quand même pas trop utile.
Surtout si tu veux attaquer par la suite DX ou OpenGL.

n°71401
youdontcar​e
Posté le 11-11-2001 à 16:07:04  profilanswer
 

ça me fait marrer parce que j'ai commencer quasi pareil, mais y'a 6 ans :D ... à l'époque en turbo pascal 6 avec de l'inline asm. aujourd'hui, y'a quand même de quoi faire des trucs un peu plus clean ... c'est vrai que ça doit être costaud de commencer par ogl, mais de mon point de vue de maintenant c'est quand même plus simple.
 
bref. la vbl c'est la vertical blanking, le signal qui indique la montée et descente du canon à électron. en pratique il faut attendre qu'elle remonte puis qu'elle descende, afin de faire l'update de l'écran pendant le temps où il n'est pas balayé.
 
un truc comme
mov dx, 3dah
@@1: in al, dx
or al, al
jz @@1
@@2 : in al, dx
or al, al
jnz @@2
 
ou l'inverse, je sais plus.
 
et pour les gros trucs, il faut avoir un écran virtuel dans lequel tu fais toutes tes opérations, puis que tu recopies dans l'écran.

n°71404
leboss
Posté le 11-11-2001 à 16:29:08  profilanswer
 

youdontcare a écrit a écrit :

ça me fait marrer parce que j'ai commencer quasi pareil, mais y'a 6 ans :D ... à l'époque en turbo pascal 6 avec de l'inline asm. aujourd'hui, y'a quand même de quoi faire des trucs un peu plus clean ... c'est vrai que ça doit être costaud de commencer par ogl, mais de mon point de vue de maintenant c'est quand même plus simple.
 
bref. la vbl c'est la vertical blanking, le signal qui indique la montée et descente du canon à électron. en pratique il faut attendre qu'elle remonte puis qu'elle descende, afin de faire l'update de l'écran pendant le temps où il n'est pas balayé.
 
un truc comme
mov dx, 3dah
@@1: in al, dx
or al, al
jz @@1
@@2 : in al, dx
or al, al
jnz @@2
 
ou l'inverse, je sais plus.
 
et pour les gros trucs, il faut avoir un écran virtuel dans lequel tu fais toutes tes opérations, puis que tu recopies dans l'écran.



comment on fait ca plize... euh sinon bah la vous m'avez convaicu vous connaissez po de bon sites pour commencer en prog direct draw, d3d ou opengl... et pis je sais po trop si borland c++ est bien pôur la prog win, j reste dessus ou je migre vers visual c++...
Arf merde g 6 ans de retard :D

n°71405
leboss
Posté le 11-11-2001 à 16:30:16  profilanswer
 

pour l'ecran virtuel c un tableau à 2dimension c ca?
mais pour le copier dans la memoire fais comment? point par point (putpixel) ou en bloc avec memset(je sais po trop comment vais faire ca)

n°71406
youdontcar​e
Posté le 11-11-2001 à 16:40:03  profilanswer
 

memcpy(). ça peut être char tab[320][200] ou char tab[64000]. justement en ogl / directx / gdi (windows) y'a tout de prévu.
 
des bons sites ? cherche sur le forum, y'a déjà eu des tonnes de questions similaires.
 
et SURTOUT : www.google.com , tu trouveras _tout_ ce que tu veux là-dessus.

mood
Publicité
Posté le 11-11-2001 à 16:40:03  profilanswer
 

n°71407
leboss
Posté le 11-11-2001 à 16:42:53  profilanswer
 

thx youdon't care!
Adieu dos ... snif
en plus je vais pouvoir installé win xp lol chuis resté sous 98 pour le dos :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Gros newbie en C] Pkoi ca clignote en mode 13h?

 

Sujets relatifs
[php] NEWBIE ! question performancesAfficher des variables en mode graphique sous Dos ?
Pour un GROS NUL EN PHPxml pour newbie
Avoir les positions de la souris en mode graphique sous DOS...VB + SQL newbie .... tutoriaux + ch'tite question facile
Gros nioubi en PHP ki pose des questions ...(Qu'est ce qu'il fout là?)newbie en c
question du newbie de chez newbie ! help ![OT] Gros bleme avec permissions de fichiers via FTP
Plus de sujets relatifs à : [Gros newbie en C] Pkoi ca clignote en mode 13h?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)