לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #4  
ישן 11-07-2005, 02:04
  darker_shadow darker_shadow אינו מחובר  
 
חבר מתאריך: 09.07.05
הודעות: 81
הסבר
בתגובה להודעה מספר 3 שנכתבה על ידי בונגולים שמתחילה ב "אולי תנסה לתת לנו פרטים על מה..."

אני מעוניין להתחיל עם גרפיקה עם שפת C לאיש רץ במצב ms-dos זה מספיק אז אני רוצה להתחיל ליצור גרפיקה עם שפת c בינתיים.

התוכנית שלי לפי התיכנון תהיה מטריצה דו מימדית 60 על 60 ולרוץ על המטריצה עם הספריה time.h ומונה זמן (יש פונקציה שמפעילה מונה זמן לפי נתון המוזן לה למשל 500 (חצי שניה)),לפי הזמן המוגדר שיבצע פעולה ועל ידי כך ליצור תמונה של איש ואז אחרי שניה ליצור תזוזה (שינוי פרמטרים במטריצה) וליצור איש רץ.

מקווה שההסבר ברור עד כאן.

עכשיו בעיה היא בפעולה על המסך עצמו,הסבר.
במצב MS-DOS אנו רצים הרי תו תו בעיקרון ויש עוד כמה אופציות למשל לרדת שורה \n לדוגמא וכו...,זה לא מספיק למקרה הזה.
מקרה זה דורש ריצה על איזור מסויים בגודל המטריצה ושינוי צבע סיביות באותו איזור לפי כל שינוי המטריצה הדו מימדית הנתונה.

מקווה שעכשיו הבעיה ברורה.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 11-07-2005, 15:54
צלמית המשתמש של bazooka joe
  bazooka joe bazooka joe אינו מחובר  
 
חבר מתאריך: 16.07.02
הודעות: 6,814
Facebook profile
תראה....
בתגובה להודעה מספר 6 שנכתבה על ידי darker_shadow שמתחילה ב "נקודה רצה,כן זה יכול לעזור תודה."

לקחתי קוד מתוכנות ישנות שבניתי וחכתי רק קטעים רלוונטים.
אל תתיחס לכל הקטע הראשוני של התוכנית(יש לך את ההמשק הזה גם בספרייה 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, נושאים מתקדמים ומלטימדיה" (אין בו שום דבר מתקדם...) בכל אופן, נכנסתי עכשיו
לאתר של הוד-עמי על מנת להביא לך לינק לספר, אבל כנראה שהם כבר לא מוכרים אותו, תחפש
אותו בספריות או משהו כזה(אם אתה גר בירושלים אז אני אוכל להשאיל לך אותו אם תרצה).
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 14:55

הדף נוצר ב 0.05 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר