Vergleiche dazu auch https://www.macintoshrepository.org/4984-bonyx
Skizzen zum Spiel


Spielmechanik
Woher die Spielmechanik kommt, kann ich heute leider nicht mehr eruieren. Die Spielmechanik ist simple, vielleicht fast zu einfach:

Es geht darum, dass man gleiche Steinreihen verschwinden lässt. Die Steine sind allerdings ungeordnet auf einem Stappel. Man kann nun Steine vom Stapel werfen nach unten, wo sie sich in einer neuen Lage sammeln. Sind alle vom selben Typ verschwinden sie, andernfalls werden sie nach oben geschoben. Sind alle Steine weg ist der Level gelöst. Allerdings gibt es eine Art Zeitlimit in Form eines Balkens, der langsam von oben nach unten fährt.
Code
Der Code ist in C in CodeWarrior geschrieben. Siehe dazu auch hier: https://research.swissdigitization.ch/?p=6270
CodeAufbau
Prinzipiell besteht der Code aus zwei Files:
_rock.c – das Spiel (keine Ahnung warum der Name vermutlich das ursprüngliche Template)
_hollywood.c – der music tracker (Soweit ich weiss per Zufall gefunden und kam aus Genf)
Hollywood.c
/* bonYxII */
Includes
#include <CursorDevices.h>
#include <sound.h>
#include <math.h>
#include <Gestalt.h>
/* MUSIC IS ON */
#include <QuickTimeComponents.h>
#include <Components.h>
#include "Hollywood.h"
#include "Hollywood.c"
Defs Game
int registr=0; // 0 == nicht registriert 1 == registriert
int ev=0; // EVENT=1 eingeschaltet
EventRecord theEvent;
int ai;
Point integerPosition, position; /* The position of our object, in integer and fixed-point*/
Point centerOfScreen; /* The center of the screen*/
Point theMouse; /* A Point that we get the mouse position in*/
Rect drawingRectangle; /* A rectangle used for drawing*/
Point speed; /* The accumulated speed*/
Rect windRect,maxrec;
GDHandle thisGDevice;
RgnHandle gOldVisRgn = NULL;
KeyMap theKeys;
CGrafPtr bsack,banima,btest;
int qweer=-10,aanzr=0;
int ffield[20][20][50]={{{ [...]
int ff[100],razo=0;
int breiteq[50]={3,4,4,3,[...],3},
timeq[50]={1092,518,479,880,425,390,669,101,353,[...],163,212};
int fof[100],timeqq,breiteqq;
int ofield[10]; int field[20][20];
SFReply reply,replyy;
short refnum,refnumm;
long bietes;
//---------------
int cheat=0; // cheat =0 deaktiviert
int r=24,rr=24,rit=2;
int alt,welch,qt;
int anim,animz,spi=2;
[Diverse Quicktime/Music-Pointers.]
// Screenhandeling (Offscreen)
void KillOffScreenPixMap (CGrafPtr offScreen){ [...] }
void CreateOffscreens (void) { [...] }
void CreateOffScreenBitMap (Rect *theRect, GrafPtr *offScreen) { [...] }
void CreateOffScreenPixMap (Rect *theRect, CGrafPtr *offScreen) { [...] }
Hauptprogramm / Spiel
/* MAIN */
void main(void)
{
Weiterlesen 





