11-07-2005, 15:54
|
|
|
|
חבר מתאריך: 16.07.02
הודעות: 6,814
|
|
תראה....
לקחתי קוד מתוכנות ישנות שבניתי וחכתי רק קטעים רלוונטים.
אל תתיחס לכל הקטע הראשוני של התוכנית(יש לך את ההמשק הזה גם בספרייה graphics של בורלנד).
תתיחס רק ללואה בתוכנית עצמה.
קוד:
#include <conio.h>
#include <dos.h>
unsigned char far *scr = (unsigned char far*)0xA0000000L;
void set_mode(short mode = 0x03) {
_asm {
mov ax, 0x4f02
mov bx, mode
int 0x10
}
}
void putpixel(int x, int y, unsigned char color){
scr[y*320+x] = color;
}
int main(void) {
set_mode(0x13);
int y=50;
for(int x=0; x<320; x++) {
if(x) putpixel(x-1,y,0);
putpixel(x,y,3);
delay(20);
}
getch();
set_mode();
return 0;
}
תראה, אני אישית מאוד לא אוהב את הרעיון של לעקב את התוכנית(השימוש בפונקצייה delay).
הששתמשי כאן בזה רק בכדי להדגים לך את הרעיון של התנועה.
השיטה הטובה(וגם האלגנטית יותר) היא לעשות שהתוכנית תרוף בלולאה וכל פעם תקרא לפונקצייה
של אובייקט מסוייים(במקרה לשנו נקודה) והפונקצייה תבדוק את הזמן הנוכחי ותדע האם לעדכן את האובייקט או לא(אבל אתה משתמש בC, תנסה משהו בסגנון).
אם אתה באמת רוצה לדעת את כל הנושא באופן שיעזור לך... אני ממליץ לך בחום לפנות ל-
http://www.cprogramming.com/tutorial/tut1.html
יש גם ספר נחמד בעברית שיש בו קצת על הנושא הזה ונושאים בסגנון, קוראים לו
"שפת C, נושאים מתקדמים ומלטימדיה" (אין בו שום דבר מתקדם...) בכל אופן, נכנסתי עכשיו
לאתר של הוד-עמי על מנת להביא לך לינק לספר, אבל כנראה שהם כבר לא מוכרים אותו, תחפש
אותו בספריות או משהו כזה(אם אתה גר בירושלים אז אני אוכל להשאיל לך אותו אם תרצה).
_____________________________________
|