Parachute - help on dev

Advice on general approaches or feasibility and discussions about game design

Parachute - help on dev

Postby jicehel » Sat Aug 12, 2017 9:28 am

Hi guys, i program in my free times sinces years but not in C and not with arduino
I like the Gamebuino (mine is a Makerbuino but it's same) and i try to convert a classic Game & watch to learn how to pogam it and make some new games for us (will do easy one atm to success them and maybe i'll try harder later but atm i need to learn)

I have begin the pogam but before to continue (and maybe finish it), i need help to understand why the boat move sometimes when paratroopers are swimming. It should be a logical error or maybe a syntx error but i miss it.

Some more experimented dev could maybe find the error easy and sorry for my english level (i'm french)

I post the pogram and thanks for the one who will be able to explain me the error and maybe give advice to perfect the program ;)

Code: Select all
/*------------------------------------------
Parachute remake for Makebuino
v0.3 by Jicehel Date:05/08/017
Based on Nintendo Game & Watch Parachute
Thanks to Luis Dominguez - LADBSoft.com
for the examples with “Firebuino”
--------------------------------------------
Last changes:
 - Add full graphics
- Add Helico animation
- Add Paratroopers animation
- Add Misses and swimmer animation
- Add score
--------------------------------------------
To do:
- Change and adjust speed quickest when the score growth             
------------------------------------------*/
#include <Gamebuino.h>
#include <EEPROM.h>
#include <SPI.h>
Gamebuino gb;
 
long  score;
long  highscore;
short misses;
short manage_joystick;
short BoatPosition;
short moveTick;
short spawnDelay;
short spawnCount;
short Nb_Parachutes_launched;
short Position_Parachute[10];
short Colonne_Para;
short Position_Para;
short shark_anim;
short helico_anim;
short vitesse_pales;
byte  gameState;
byte  speedmax;
int   compteur;
short x;

//  const int JoyY_pin = A5; // Analog pin connected to joystick's Y axis output (not used in parachute)
const int JoyX_pin = A4;   // Analog pin connected to joystick's X axis output
int JoyX_pos = 0; // Variable to store position of joystick's Y axis
 
const byte barque[] PROGMEM = { 16,7,
B00111000,B00000000,B01011100,B00000000,B01111000,B00000000,B00110000,B00000000,B11011100,B00000000,B11111111,B11111111,B11001111,B11111110,};
 
const byte requin_m[] PROGMEM = { 16,6,
B00000000,B00111000,B11000001,B11111000,B11110110,B11010000,B11111111,B10000000,B01111110,B00110000,B11111111,B11110000,};
 
const byte aileron[] PROGMEM = { 8,8,
B00010000,B01110000,B01110000,B11110000,B00000000,B00000000,B00000000,B00000000,};
 
const byte titleScreenBitmap[] PROGMEM = {80,32,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x0,0x0,0x0,0x0,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x0,0x0,0x0,
0x1,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x0,0x0,0x0,0x3,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x0,0x0,0x0,0x3,0xE0,0x0,0x0,0x1,0xFF,0xF0,0x0,0x0,0x0,0x3,0xE0,0x0,0x4F,0x9,0xFD,0xF0,0x0,0x0,0x0,
0x3,0xE0,0x0,0x3F,0x80,0xAB,0xF0,0x0,0x0,0x0,0x3,0xE1,0xE0,0xE7,0xC2,0xFF,0xF0,0x0,0x0,0x0,0x3,0xFF,0xF1,0xFF,0xE1,0x29,0xF0,0x0,0x0,0x0,0x3,0xFF,0x81,0x89,0xE3,0xFD,0xF0,0x0,0x0,0x0,
0x3,0xFF,0x81,0xC9,0xE1,0xFF,0xF0,0x0,0x0,0x0,0x3,0xFF,0x81,0x4E,0x20,0xF9,0xF0,0x0,0x0,0x0,0x3,0xF6,0xE0,0x36,0x50,0x67,0xF0,0x0,0x0,0x0,0x3,0xF0,0x0,0x1F,0xA0,0x27,0xF0,0x0,0x0,0x0,
0x3,0xFC,0x0,0x7D,0x0,0xF,0xF0,0x0,0x0,0x0,0x3,0xFC,0x0,0x37,0x0,0x1F,0xF0,0x0,0x0,0x0,0x3,0xF8,0x7B,0x22,0x1,0xFF,0xF0,0x0,0x0,0x0,0x3,0xF8,0x3,0xF0,0x0,0x7,0xF0,0x0,0x0,0x0,
0x3,0xFF,0x80,0x80,0x0,0x7,0xF0,0x0,0x0,0x0,0x3,0xF8,0x0,0x0,0x19,0x87,0xF0,0x0,0x0,0x0,0x3,0xE0,0x0,0x1,0xF2,0x87,0xF0,0x0,0x0,0x0,0x3,0xF0,0x72,0x80,0x78,0x1,0xF0,0x0,0x0,0x0,
0x3,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x0,0x0,0x0,0x3,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x0,0x0,0x0,0x1,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x0,0x0,0x0,0x0,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
 
const byte Helice[] PROGMEM = {8,1,B11111000,};
 
const byte Helico[] PROGMEM = {24,10,
B00000100,B00000000,B00000000,B00000100,B00000100,B00000000,B00001110,B00000100,B00000000,B00011111,B00011111,
B00000000,B00011111,B11111001,B10000000,B00011110,B10101000,B11000000,B00001110,B10101111,B11000000,B00000111,
B11111111,B10000000,B00000011,B00000110,B00000000,B00000011,B00000110,B00000000,};
 
const byte Noye_1[] PROGMEM = {16,5,B01000100,B01000000,B00001110,B00000000,B10101010,B10000000,B00011111,B00000000,B00001110,B00000000,};
 
const byte Noye_2[] PROGMEM = {16,5,B00000000,B01000000,B01001110,B00000000,B00001101,B01000000,B00111111,B00000000,B00001110,B00000000,};
 
const byte Para_1[] PROGMEM = {8,8,B00000100,B00100111,B00110011,B10011111,B11011100,B01111111,B00110010,B01100000,};
 
const byte Nageur[] PROGMEM = {8,5,B01000000,B11101110,B11111111,B00011110,B01111100,};
 
const byte Parra_m[] PROGMEM = {8,5,B00001100,B10110110,B10000110,B11111100,B00111100,};
 
const byte Para_2[] PROGMEM = {16,11,
B00000000,B00011000,B00000000,B00111000,B00011100,B01110000,B00111100,B11100000,B10011101,B11000000,B01101111,
B00000000,B00011110,B00000000,B01111111,B00000000,B11011001,B10000000,B00110000,B00000000,B01100000,B00000000,};
 
const byte Para_3[] PROGMEM = {16,15,
B00000001,B10000000,B00000011,B10000000,B00000111,B10000000,B00001101,B00000000,B00011011,B00000000,B00011110,
B00000000,B00000100,B00000000,B00111000,B00000000,B00111100,B00000000,B00111000,B00000000,B10011011,B00000000,
B01111100,B00000000,B00110000,B00000000,B01010000,B00000000,B11011000,B00000000,};
 
const byte Para_4[] PROGMEM = {16,17,
B00001111,B11100000,B00111011,B11111000,B01110011,B11011100,B11100111,B11001110,B11111111,B11001110,B11100100,
B11111110,B10000100,B01001110,B01000100,B01000010,B00100100,B11000100,B00010111,B11001000,B00001101,B11010000,
B00000111,B11100000,B00000001,B10010000,B00000001,B11110000,B00011011,B10000000,B00001100,B11100000,B00000000,B00110000,};
 
const byte Para_5[] PROGMEM = {24,18,
B00000011,B11100000,B00000000,B00011111,B11111000,B00000000,B00111001,B11111110,B00000000,B01110001,B11111111,
B00000000,B01110011,B11111011,B10000000,B11111111,B11111001,B10000000,B11000111,B01111001,B11000000,B10000010,
B00011111,B11000000,B01000010,B00001011,B11000000,B00100011,B00001000,B11000000,B00010111,B10010000,B01000000,
B00001011,B10010001,B10000000,B00100101,B10111110,B00000000,B00110111,B01100000,B00000000,B00011111,B11100000,
B00000000,B00100011,B00000000,B00000000,B00111111,B11110000,B00000000,B00110000,B01100000,B00000000,};
 
const byte Miss[] PROGMEM = {8,5,B11000000,B11100100,B11111100,B01111100,B11001100,};
 
#define NUM_SPRITES 5
const byte* shark[NUM_SPRITES] = {
  aileron, //0
  aileron, //1
  aileron, //2
  aileron, //3
  requin_m //4
};
 
const byte subBackgroundBitmap[] PROGMEM = {88,48,
B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00010000,
B11101001,B10001000,B10110101,B01111011,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,
B10110101,B01010101,B01110101,B01010010,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,
B11011101,B10011101,B00111101,B01010011,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,
B10010101,B01010101,B01110101,B01010010,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,
B10010101,B01010100,B10110101,B11010011,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,
B00000000,B00000000,B00100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,
B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,
B00011010,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,
B01101110,B10100111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,
B11111111,B11111111,B11111000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,
B11111111,B11111111,B11111100,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,
B01111111,B11111101,B01110100,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,
B11111111,B01001000,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000100,B10110000,
B10011100,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000001,B11001101,B10110000,
B00011000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00011110,B11111111,B11110000,
B00111000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B01111111,B11111111,B11110000,
B00110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000001,B11111111,B11111111,B11110000,
B01110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000010,B01111111,B01111111,B11100000,
B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B01000100,B11111011,B10110000,
B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000001,B11111001,B11000000,
B11100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B10101000,B11000000,
B11100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B11100000,
B11100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B11110000,
B11100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B11110000,
B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11110000,
B11111110,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00011111,B11110000,
B11111111,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11110000,
B11111111,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B11111111,B11110000,
B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B11111111,B11110000,
B11111110,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B11111111,B11110000,
B11111100,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11110000,
B11111100,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000001,B11110000,
B11111000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000001,B11110000,
B11111000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B11110000,
B11111000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B11110000,
B11111000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000000,B00000000,B00000000,B00000000,B01110000,
B11110000,B11110011,B00011110,B01100001,B11111001,B11111100,B11001111,B11100000,B00010000,B00100000,B11110000,
B00000000,B00000100,B00000000,B00000000,B00000000,B01000000,B00000000,B00110000,B00000000,B00000000,B00000000,
B11100000,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,
B00001110,B00000000,B00000000,B00000000,B00000000,B00001000,B00000000,B00000011,B11110001,B11000011,B11100000,
B11110001,B11100000,B00000000,B00000000,B00000000,B00001000,B00000000,B00000000,B00001111,B00111111,B00000000,
B00001110,B00000000,B00000000,B01111100,B00001111,B00111110,B00000000,B00000000,B00000000,B11000000,B00000000,
B11000000,B01111100,B00000000,B00000000,B00000000,B00001000,B00000000,B00000000,B00000000,B00000001,B11110000,
B00000000,B00000000,B00000000,B00000000,B00000000,B00001000,B00000000,B00000000,B00000000,B00000000,B00000000,
B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,
B00000000,B00000001,B11111001,B11100001,B11110011,B11000111,B11111100,B00001111,B10000000,B00000000,B00000000,
B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00010000,};
 
 
void initGame() {
  gb.pickRandomSeed();
  misses = 0;
  score = 0;
  BoatPosition = 1;
  spawnDelay = 45;
  shark_anim = 0;
  speedmax = 30;
  helico_anim = 0;
  vitesse_pales = 5;
  moveTick = speedmax;
  spawnCount = spawnDelay;
  manage_joystick = 0;   
}
 
void setup() {
  gb.begin();
  //  gb.display.setFont(font5x7); //change the font to the large one
  gb.titleScreen(F("Parachute"), titleScreenBitmap);
  gb.pickRandomSeed(); //pick a different random seed each time for games to be different
  gb.battery.show = false;
 
  //############################################################
  //  pinMode(JoyY_pin, INPUT); //Configures pin on microcontroller
  pinMode(JoyX_pin, INPUT);
  //############################################################
 
  initGame();
}
 
void anim_shark() {
 
  switch (shark_anim) {
      case 0 :
        break;
      case 1 :
        gb.display.drawBitmap(40 , 38, shark[shark_anim - 1]);
        break;
      case 2 :
        gb.display.drawBitmap(22 , 38, shark[shark_anim - 1]);
        break;
      case 3 :
        gb.display.drawBitmap(13 , 42, shark[shark_anim - 1],0,FLIPH);
        break;
      case 4 :
        gb.display.drawBitmap(29 , 42, shark[shark_anim - 1],0,FLIPH);
        break;
      case 5 :
        gb.display.drawBitmap(48 , 40, shark[shark_anim - 1]);
        break;
      case 6:
        // Traiter la fin de l’animation du requin
        shark_anim = 0;
        break;
  }
  gb.sound.playTick();
}
 
void anim_helico() {
   switch(helico_anim) {
     case 0:
        gb.display.drawBitmap(65 , 0, Helice);
        gb.display.drawBitmap(71 , 0, Helice);
        break;
      case 1 :
        gb.display.drawBitmap(65 , 0, Helice);
        gb.display.drawBitmap(71 , 0, Helice);
        gb.display.drawBitmap(73 , 1, Helice);
        gb.display.drawBitmap(79 , 1, Helice);
        break;
      case 2 :
        gb.display.drawBitmap(73 , 1, Helice);
        gb.display.drawBitmap(79 , 1, Helice);
        break;
      case 3 :
        helico_anim = 0;
        break;
  } 
}
 
void anim_para() {
 
  for (compteur = 0 ; compteur < Nb_Parachutes_launched ; compteur++)
    {
       if (compteur > 0) {
          Colonne_Para = Position_Parachute[compteur] / 10;
          Position_Para = Position_Parachute[compteur] - Colonne_Para*10;
          Dessine_Para(Colonne_Para,Position_Para);
          if ((Position_Para >= 4+Colonne_Para) && (Colonne_Para <=3) ) Test_Barque(Colonne_Para,compteur);
          else if (moveTick==0) Position_Parachute[compteur]++ ;
       }
    } 
}
 
void Dessine_Para(short X, short Y) {
// Dessine le para en fonction de sa colonne (1 à gauche et 3 à droite) et de sa position
  if (X < 4) {
    switch(Y) {
      case 1:
        gb.display.drawBitmap(72 - 6*X  , 9 - 3*X, Para_1);
        break;
      case 2:
        gb.display.drawBitmap(67 - 7*X  , 11 - 3*X, Para_2);
        break;
      case 3:
        gb.display.drawBitmap(56 - 6*X  , 14 - 5*X, Para_3);
        break;
      case 4:
        gb.display.drawBitmap(54 - 8*X  , 15 - (X-1)*4, Para_4);
        break;
      case 5:
        gb.display.drawBitmap(56 - 12*X  , 12 + (3 - X)*3, Para_5);
        break;
      case 6:
        if (X==2) gb.display.drawBitmap(29 , 17, Para_5);
        else gb.display.drawBitmap(17 , 14, Para_5) ;
        break;
      case 7:
        gb.display.drawBitmap(13 , 17, Para_5);
        break;
      case 8:
        break;
    }
  } else {
    switch(Y) {
      case 1:
        gb.display.drawBitmap(48 , 39, Noye_1);
        break;
      case 2:
        gb.display.drawBitmap(30 , 39, Noye_2);
        break;
      case 3:
        gb.display.drawBitmap(14, 39, Noye_2,0,FLIPH);
        break;
      case 4:
        gb.display.drawBitmap(21, 43, Nageur);
        break;
      case 5:
        gb.display.drawBitmap(37, 43, Nageur);
        break;
      case 6:
        gb.display.drawBitmap(37, 43, Parra_m);
        break;
      case 7:
        Nb_Parachutes_launched --;
        break;
    }
  }
}
 
void Test_Barque(int colonne, int para_courant) {
int X;
// Test si la barque est sous le para => score ou passe le para en mode nageur (colonne théorique: 4) ...
  if (colonne == BoatPosition ) {
    score ++;
    if (para_courant < Nb_Parachutes_launched) Position_Parachute[para_courant] = Position_Parachute[Nb_Parachutes_launched];
    Nb_Parachutes_launched--;
  } else {
   misses++;
   Position_Parachute[1] = 4*10 + colonne; 
   shark_anim = colonne;
   for (X = 2; X < Nb_Parachutes_launched ; X++) Position_Parachute[X] = 0;
   Nb_Parachutes_launched == 1;
   spawnCount = spawnDelay;
  }
}
 
void loop() {
 
  // Gestion du Joystick                              // Comments
  if(analogRead(JoyX_pin) <= 600)       JoyX_pos = 1; // Joystick is in left position
    else if(analogRead(JoyX_pin)>= 700) JoyX_pos = 2; // Joystick is in right position
        else JoyX_pos = 0;                            // Joystick is inside dead spot at or near its home positon
  if (gb.update()) {
 
    //pause the game if C is pressed
    if(gb.buttons.pressed(BTN_C)){
     gb.titleScreen(F("Parachute"), titleScreenBitmap);
      gb.battery.show = false;
      // gb.display.fontSize = 2;
    }
 
    gb.display.drawBitmap(0, 0, subBackgroundBitmap);
   
    // Animtion de l'hélicoptère
    gb.display.drawBitmap(65 , 0, Helico);
    anim_helico;
    vitesse_pales--;
    if (vitesse_pales < 0) {
      helico_anim++;
      vitesse_pales = 5;
    }

    // Animation de la barque
    if(gb.buttons.pressed(BTN_LEFT) || gb.buttons.pressed(BTN_A) || (JoyX_pos == 1 && manage_joystick== 1)){
        if (BoatPosition > 1) BoatPosition--;
    }
    if(gb.buttons.pressed(BTN_RIGHT) || gb.buttons.pressed(BTN_B) || (JoyX_pos == 2 && manage_joystick== 1)){
        if (BoatPosition < 3) BoatPosition++;
    }
    gb.display.drawBitmap(BoatPosition * 16 - 8 , 30, barque);

    // Animtion des parachutistes
    anim_para();
    spawnCount--;
    if ((spawnCount < 1) && (random(6)< 2)) {
      spawnCount = int(random(3))+1;
      Nb_Parachutes_launched++;
      Position_Parachute[Nb_Parachutes_launched] = spawnCount*10+1;
      spawnCount = spawnDelay;
    }

    // Animation du requin

    if (moveTick > 0) moveTick --;
    else {
       if ((shark_anim > 0) || ((shark_anim == 0) && (random(50) < 5)))   shark_anim++;
       moveTick = speedmax;
    }
    anim_shark();
  } 
jicehel
 
Posts: 21
Joined: Thu Aug 10, 2017 10:25 pm

Re: Parachute - help on dev

Postby jicehel » Mon Aug 14, 2017 10:50 am

I don't understand why my boat go in position 0 when parachutes go in water... Some errors to correct...
I send a link it's can be more usefull to catch code https://pastebin.com/raXdUjgB
jicehel
 
Posts: 21
Joined: Thu Aug 10, 2017 10:25 pm

Re: Parachute - help on dev

Postby jicehel » Mon Sep 18, 2017 3:36 pm

The game have progressed. I have correct some bugs and now the game is playable (but not finished)
I’ll take all good idea to perfect this part of the code and the gameplay before adding the last things (missed count, end of game, 200 and 500 bonuses and trying to find a better adjustement of speed / launching paratroopers and let time to move to catch them).

Another little bad bug is the repeat display of a sprite after the deletation of another (paratrooper catched by boat)

So any advice, any solution to perfect or corect something is Welcome
Code is posted here: https://pastebin.com/cbsMrFrm
jicehel
 
Posts: 21
Joined: Thu Aug 10, 2017 10:25 pm

Re: Parachute - help on dev

Postby jicehel » Wed Sep 20, 2017 8:51 pm

No tester yet ? No idea to perfect it ? To correct the bug of the display again a paratrooper when another is catched by the boat ? Or to have a better launch of the troopers for more fun ?
jicehel
 
Posts: 21
Joined: Thu Aug 10, 2017 10:25 pm

Re: Parachute - help on dev

Postby erico » Wed Sep 20, 2017 9:30 pm

I could give a try, but currently don´t have the programs set up to compile it.
I like the "parachute" idea, I used to have Octopuss and donkey jr. :)
User avatar
erico
 
Posts: 671
Joined: Thu Mar 27, 2014 9:29 pm
Location: Brazil

Re: Parachute - help on dev

Postby jicehel » Wed Sep 20, 2017 9:47 pm

I'll try to complete Parachute first but Octopus can be done too (the graphic and the gameplay are easy). If i do i'll need help to to adjust the gameplay it's the most important thing: make the game fun. Technically making the graphics and anim the diver are easy but make a good timing and speed, add the bip t the good moment need to know the game and to test ;)
This game it's not mine, i only adapt an old good game fom Nintendo so all can propose adjustement and try to perfect it to have another good game on ou Game or Makerbuino. Thanks aleady for your tests and help
jicehel
 
Posts: 21
Joined: Thu Aug 10, 2017 10:25 pm

Re: Parachute - help on dev

Postby erico » Sat Sep 23, 2017 7:15 am

Don´t worry about the octopuss, how is the parachute going?
Can you upload an hex? or show some screen shots?
User avatar
erico
 
Posts: 671
Joined: Thu Mar 27, 2014 9:29 pm
Location: Brazil

Re: Parachute - help on dev

Postby jicehel » Sat Sep 23, 2017 8:51 am

yes, i have just to read how do an hex, it should not be long. I post it soon ;)
jicehel
 
Posts: 21
Joined: Thu Aug 10, 2017 10:25 pm

Re: Parachute - help on dev

Postby jicehel » Sat Sep 23, 2017 10:02 am

Parachute.zip
(81.35 KiB) Downloaded 642 times
Done. It's easy to understand on wiki ;) I have make an hex of the actual version (it' not complete, the missed managment isn't coded, the sound isn't coded, the scores bonus aren't coded and the system of speed change and regulation of paratroopers launch have to be perfect).
I want fist have the speed and launch paratrooper fixed before coding the other things. I have the originals sound on wav fomat and i have to find how to play them good or thing something like them)
Enough talked, this is the actual HEX (I have make a zip as Hex can't be attached as attachment)
jicehel
 
Posts: 21
Joined: Thu Aug 10, 2017 10:25 pm

Re: Parachute - help on dev

Postby erico » Sat Sep 23, 2017 3:42 pm

I will give a try then!
edit: Just tried, it looks awesome! You even got the sharks swimming about! :D
User avatar
erico
 
Posts: 671
Joined: Thu Mar 27, 2014 9:29 pm
Location: Brazil

Next

Return to Project Guidance & Game development

Who is online

Users browsing this forum: No registered users and 3 guests

cron