עבור לתוכן

דרוש טיימר בC (לא delay- שיהיה אפשר לבצע עוד פעולה באותו זמן)

Featured Replies

פורסם

מה שאני צריך, למשל, כשקובייה יורדת (תדמיינו טטריס) שיהיה אפשר להזיז אותה..

פורסם

רגע... לא הבנתי... אתה צריך מנגנון למדידת הפרשי זמנים?

פורסם

המממ, THREADING.

או לולאה-אינסופית שתשתמש בקאונטר, או הפרשי זמנים(לתזוזות) ותבדוק את הבאפר של הקייבורד-אינפוט - לא יודע אם בכלל אפשר לבדוק אותו בC

פורסם
  • מחבר

אני אסביר את עצמי קצת יותר טוב-

הרי מיקום בלוק של הטטריס (לדוגמא) נשלט ע"י X ו Y

צריך שהבלוק יפול בהדרגתיות, אבל גם בנפילה יהיה אפשר לשנות לו את ציר הX...

got it?

thanks.

פורסם

דווקא הבנתי אותך...

הצורה הכי טובה לעשות את זה הכי טוב היא בmultithreading,

אבל זה תלוי פלטפורמה, ולא ציינת תחת איזו אתה עובד...

צירפתי דוגמא לשימוש בלולאה, אפשר להשתמש במקום בקאונטר בבדיקת זמנים, אבל לא היה לי כוח לזה... הפתרון הזה לא ממש פרקטי, אבל אולי הוא יתאים לצרכים שלך.

#include <stdio.h>

void main()
{
char ch = '#'; //a simple char
int i = 0;
int y = 0;
int x = 0;
int left = 75; // left key ascii code
int right = 77; // right key ascii code

while (1){ // main loop
i++;

if (kbhit()) // check if key buffer full
{
char c = getch(); // get the first key when left or right = -32
c = getch(); // get the realkey
if ((c == left) && (y > 0)){ //if left
y--;
}
if ((c == right) && (y < 50)){ //if right
y++;
}
c = ' '; // clear the char
}

if (i > 5000){ // the print section
i = 0;

for (x=0;x<y ;x++ )//
{// Add
putchar(' ');// Spaces
}//

putchar(ch);//put the simple char and newline
putchar('\n');
}
}

}

פורסם
  • מחבר

אני אנסה מחר בכיתה למצוא דוגמא יותר טובה (כי שלך בCPP לפי איך שזה נראה)

בכ"א אם אמצא אפרסם, ואם לא- אודיע לכם.

פורסם

בעעעע, זה סתם טימטום שלי. :-\

זה הכול בC, ותיקנתי איזה באג אדיוטי שהכנסתי בדרך,

הנה, שוב.

(זה מה שקורה שלא מחפשים וכותבים דוגמא לבד... 8))

void main()
{
char ch = '#'; //a simple char
int i = 0;
int y = 0;
int x = 0;
int left = 75; // left key ascii code
int right = 77; // right key ascii code

while (1){ // main loop
i++;

if (kbhit()) // check if key buffer full
{
char c = getch(); // get the first key when left or right = -32
if (c == -32)
c = getch(); // get the realkey
if ((c == left) && (y > 0)){ //if left
y--;
}
if ((c == right) && (y < 50)){ //if right
y++;
}
c = ' '; // clear the char
}

if (i > 5000){ // the print section
i = 0;

for (x=0;x<y ;x++ )//
{// Add
putchar(' ');// Spaces
}//

putchar(ch);//put the simple char and newline
putchar('\n');
}
}

}

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים