помогите пожалуста игра на ардуино тв
- Войдите на сайт для отправки комментариев
Пнд, 03/10/2016 - 19:45
вот не могу понять как сделать чтоб когда ловил хилку здоровье пополнялось ;
(конец скетча);
сам скетч:
#include <TVout.h>
#include <fontALL.h>
TVout TV;
#define SCREEN_WIDTH 112
#define SCREEN_HEIGHT 112
#endif
// potentiometer game paddle input
#define POTPIN 2
#define PADDLE_DEAD_ZONE_LOW 256
#define INITIAL_SPEED 10
// SPRITE BITMAPS //
PROGMEM const unsigned char CONFETA_SPRITE[] = {
5,5, 0x88,0xD8,0xF8,0xD8,0x88};
PROGMEM const unsigned char HEART_SPRITE[] = {
8,8, 0x00, 0x00, 0x6C, 0xFE, 0xFE, 0x7C, 0x38, 0x10};
PROGMEM const unsigned char PLAYER_SPRITE[] = {
16,16,
0x81,0x81,0xFF,0xFF,0x70,0x0E,0x33,0xCC,
0x14,0x28,0x17,0xE8,0x14,0x28,0x13,0xC8,
0x11,0x88,0x1F,0xF8,0x04,0x20,0x05,0xA0,
0x05,0xA0,0x0C,0x30,0x1F,0xF8,0x3F,0xFC
};
PROGMEM const unsigned char HILKA_SPRITE[] = {
5,5, 0xF8,0xD8,0x88,0xD8,0xF8};
// GAME STATE //
int state = 0;
int val = 0; // paddle (potentiometer) position
int newval = 0; // new paddle (potentiometer) position
int pxpos = SCREEN_WIDTH/2; // player position
int cxpos = random(0, SCREEN_WIDTH-COLLECT_SPRITE[0]/2);
int cypos = 0;
int cspeed = 1; // collectible fall speed
int lives = 5;
unsigned long score = 0l; // здесь 01
char strscore[6] = "00000";
int i; // your generic loop variable
void setup() {
TV.begin(_PAL, SCREEN_WIDTH, SCREEN_HEIGHT);
TV.clear_screen();
TV.select_font(font6x8);
//Serial.begin(9600); // Uncomment for debug
}
int read_paddle_pos() {
return max(PADDLE_DEAD_ZONE_LOW, analogRead(POTPIN))-PADDLE_DEAD_ZONE_LOW;
}
void loop() {
// GAME INTRO STATE //
if (state==0) {
delay(500);
TV.clear_screen();
TV.print(SCREEN_WIDTH/2-3.3*5,SCREEN_HEIGHT/17,"igra ");
TV.print(SCREEN_WIDTH/2-8*5,SCREEN_HEIGHT/8,"poimay konfety");
TV.print(SCREEN_WIDTH/2-4*5,SCREEN_HEIGHT/1.25,"by Corolsan");
val = read_paddle_pos();
state+=1;
return; // EXIT LOOP
}
// WAIT USER INPUT STATE //
else if (state==1) {
newval = read_paddle_pos();
if (abs(val-newval)>10) {
state+=1;
}
return;
}
// 1. CHECK FOR END CONDITION
if (lives==0) {
TV.print(SCREEN_WIDTH-33,0, strscore);
TV.print(SCREEN_WIDTH/6,SCREEN_HEIGHT/2,"igra okoncena");
TV.noTone();
state=3;
return; // EXIT LOOP
}
// Wait for vblank to avoid flicker
TV.delay_frame(1);
TV.clear_screen();
// 2. DRAW LIVES AND SCORE
for (i = 0 ; i < lives ; i++) {
TV.bitmap(8*i, 0, HEART_SPRITE);
}
TV.print(SCREEN_WIDTH-33,0, strscore);
boolean job = (cspeed == 9 );
if (job){
TV.bitmap(cxpos, cypos, HILKA_SPRITE);
} else {
TV.bitmap(cxpos, cypos, COLLECT_SPRITE);}
cypos+=max(1,cspeed/4);
// 4. DRAW PLAYER
newval = read_paddle_pos(); // read the value from the sensor
// Prevent jitter
if (abs(val-newval)>2) {
val = newval;
pxpos = (int)((SCREEN_WIDTH-16)*(float)val/(1024-PADDLE_DEAD_ZONE_LOW));
}
TV.bitmap(pxpos, SCREEN_HEIGHT-17, PLAYER_SPRITE);
// 5. CHECK FOR FALLING THINGS HITTING THE FLOOR
if (cypos>=(SCREEN_HEIGHT-HILKA_SPRITE[1])) {
int d = abs((cxpos+HILKA_SPRITE[0]/2)-(pxpos+PLAYER_SPRITE[0]/2));
if (d<PLAYER_SPRITE[0]/2) {
score+=100;
sprintf(strscore, "%05lu", score);
lives+=1;
cspeed+=1;
}
}
cxpos = random(0, SCREEN_WIDTH-HILKA_SPRITE[0]/2);
cypos = 0;
}
else {(cypos>=(SCREEN_HEIGHT-COLLECT_SPRITE[1])) {
// Player and thing are on top of each other,
// -> player collected the object
int d = abs((cxpos+COLLECT_SPRITE[0]/2)-(pxpos+PLAYER_SPRITE[0]/2));
if (d<PLAYER_SPRITE[0]/2) {
score+=100*cspeed;
sprintf(strscore, "%05lu", score);
cspeed+=1;
}
else {
// Oops, player failed to catch the thing
lives-=1;
if (lives==0) {
TV.clear_screen();
}
}
cxpos = random(0, SCREEN_WIDTH-COLLECT_SPRITE[0]/2);
cypos = 0;
}
}
// Speed up the game as more collectibles are catched
delay(max(1,INITIAL_SPEED-cspeed));
}
//зарание спасибо
Читер? :)))
1. Опубликуйте код как положено.
2. Объясните проблему нормальным языком: в терминах переменных и функций, а не хилок и здоровья.
Давайте, Вы свё же выложите нормально.
Ну, не хочу я читать такой текст - "
( переменная <span style=
"font-family:Verdana, Geneva, Arial, sans-serif;font-size:12px;"
>HILKA_SPRITE ,здровье </span><span style=
"font-family:Verdana, Geneva, Arial, sans-serif;font-size:12px;"
>HEART_SPRITE
"Давайте, это не трудно.
Извините я первый раз на этом сайте многого еще не знаю
В самом конце скетча у меня случилась проблема с переменными это игра на тв я и говорил такими словами хилка ( переменная HILKA_SPRITE ,здровье HEART_SPRITE к
ним присвоены функции, но они путаются вот и вся проблема
Погодите "к ним присвоены функции, но они путаются" - Вы сами что-нибудь поняли?
Объясните толком, что Вам нужно и что имеем сейчас и чем первое отличается от второго.
Можете объяснить?
вообщем с 114 строки
я не понял как сделать правильно
у меня не срабатываут функция
посмотрите и поймете
1. В строке 114 нет никакой функции
2. функция не может "не срабатывать" Она всегда что-то делает. то, что Вам нужно или нет. Вот я и пытаюсь понять что же Вам нужно.
В общем, если Вы не в состоянии объяснить в чём Ваша проблема, то я не в состоянии Вам помочь. Жаль.