From 660c54c7ca44e8185744465f576b2105f90f44d9 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Mon, 8 Dec 2014 16:34:49 -0600 Subject: [PATCH] added toxic tile wwww modified: scroll.exe modified: src/scroll.c --- scroll.exe | Bin 49179 -> 49367 bytes src/scroll.c | 167 ++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 153 insertions(+), 14 deletions(-) diff --git a/scroll.exe b/scroll.exe index b045791a063d82c840785344ae9b09966a7df2e8..da43258cfa0d390bd9b0293c6d5d28d65f733fa0 100644 GIT binary patch delta 13948 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�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 delta 13639 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 L^Lf5cfzbZ}MS2KJ diff --git a/src/scroll.c b/src/scroll.c index 9000d63e..18d8ace7 100644 --- a/src/scroll.c +++ b/src/scroll.c @@ -38,7 +38,9 @@ typedef struct { int tx; //player tile position on the viewable map int ty; //player tile position on the viewable map int triggerx; //player's trigger box tile position on the viewable map - int triggery; //player's trigger box tile position on the viewable map + int triggery; //player's trigger box tile position on the viewable map + int setx; //NOT USED YET! player sprite sheet set on the image x + int sety; //NOT USED YET! player sprite sheet set on the image y word q; //loop variable word d; //direction int hp; //hitpoints of the player @@ -69,7 +71,7 @@ void animatePlayer(map_view_t *src, map_view_t *dest, /*map_view_t *top, */sword #define TRIGGY 9 //#define SWAP(a, b) tmp=a; a=b; b=tmp; void main() { - bitmap_t ptmp; // player sprite + bitmap_t ptmp;//, npctmp; // player sprite const char *cpus; static int persist_aniframe = 0; /* gonna be increased to 1 before being used, so 0 is ok for default */ page_t screen, screen2, screen3; @@ -79,7 +81,7 @@ void main() { byte *pal; byte *ptr; actor_t player; - + //actor_t npc0; /* save the palette */ pal = modexNewPal(); @@ -96,8 +98,9 @@ void main() { /* draw the tiles */ ptr = map.data; - /*data\\*/ - ptmp = bitmapLoadPcx("ptmp.pcx"); // load sprite + /* data */ + ptmp = bitmapLoadPcx("ptmp.pcx"); // load sprite + //npctmp = bitmapLoadPcx("ptmp1.pcx"); // load sprite setkb(1); modexEnter(); modexPalBlack(); @@ -131,19 +134,148 @@ void main() { player.triggerx = player.tx; player.triggery = player.ty+1; player.q=1; - player.d=0; + player.d=0; + player.hp=4; + //npc + /*npc0.tx = bg->tx + 1; + npc0.ty = bg->ty + 1; + npc0.x = npc0.tx*TILEWH; + npc0.y = npc0.ty*TILEWH; + npc0.triggerx = npc0.tx; + npc0.triggery = npc0.ty+1; + npc0.q=1; + npc0.d=0; + modexDrawSpriteRegion(spri->page, npc0.x-4, npc0.y-TILEWH, 24, 64, 24, 32, &npctmp);*/ modexDrawSpriteRegion(spri->page, player.x-4, player.y-TILEWH, 24, 64, 24, 32, &ptmp); modexClearRegion(spri->page, player.triggerx*16, player.triggery*16, 16, 16, 1); - modexClearRegion(bg->page, player.triggerx*16, player.triggery*16, 16, 16, 1); + modexClearRegion(bg->page, player.triggerx*16, player.triggery*16, 16, 16, 1); + + modexClearRegion(spri->page, 5*16, 5*16, 16, 16, 255); + modexClearRegion(bg->page, 5*16, 5*16, 16, 16, 255); + modexShowPage(spri->page); - while(!keyp(1)) + while(!keyp(1) && player.hp!=0) { //top left corner & bottem right corner of map veiw be set as map edge trigger since maps are actually square //to stop scrolling and have the player position data move to the edge of the screen with respect to the direction //when player.tx or player.ty == 0 or player.tx == 20 or player.ty == 15 then stop because that is edge of map and you do not want to walk of the map #define INC_PER_FRAME if(player.q&1) persist_aniframe++; if(persist_aniframe>4) persist_aniframe = 1; + /*#define INC_PER_FRAME_NPC if(npc0.q&1) persist_aniframe++; if(persist_aniframe>4) persist_aniframe = 1; + + if(npc0.d == 0 && npc0.q == 1) npc0.d =rand()%8; + if(npc0.d>4) + npc0.d=0; + //right movement + if(npc0.d == 2) + { + if(npc0.tx < MAPX && !(npc0.tx+1 == TRIGGX && npc0.ty == TRIGGY) && !(npc0.tx+1 == player.tx && npc0.ty == player.ty)) + { + if(npc0.q<=(TILEWH/SPEED)) + { + INC_PER_FRAME_NPC; + npc0.x+=SPEED; + //animatePlayer(bg, spri, mask, 1, 0, npc0.x, npc0.y, persist_aniframe, q, &npctmp); + animatePlayer(bg, spri, npc0.d-1, 0, npc0.x, npc0.y, persist_aniframe, npc0.q, &npctmp); + modexShowPage(spri->page); + npc0.q++; + } else { npc0.q = 1; npc0.d = 0; npc0.tx++; } + } + else + { + modexCopyPageRegion(spri->page, bg->page, npc0.x-4, npc0.y-TILEWH, npc0.x-4, npc0.y-TILEWH, 24, 32); + modexDrawSpriteRegion(spri->page, npc0.x-4, npc0.y-TILEWH, 24, 32, 24, 32, &npctmp); + modexShowPage(spri->page); + npc0.d = 0; + } + npc0.triggerx = npc0.tx+1; + npc0.triggery = npc0.ty; + } + + //left movement + if(npc0.d == 4) + { + if(npc0.tx > 1 && !(npc0.tx-1 == TRIGGX && npc0.ty == TRIGGY) && !(npc0.tx-1 == player.tx && npc0.ty == player.ty)) + { + if(npc0.q<=(TILEWH/SPEED)) + { + INC_PER_FRAME_NPC; + npc0.x-=SPEED; + //animatePlayer(bg, spri, mask, 3, 0, npc0.x, npc0.y, persist_aniframe, q, &npctmp); + animatePlayer(bg, spri, npc0.d-1, 0, npc0.x, npc0.y, persist_aniframe, npc0.q, &npctmp); + modexShowPage(spri->page); + npc0.q++; + } else { npc0.q = 1; npc0.d = 0; npc0.tx--; } + } + else + { + modexCopyPageRegion(spri->page, bg->page, npc0.x-4, npc0.y-TILEWH, npc0.x-4, npc0.y-TILEWH, 24, 32); + modexDrawSpriteRegion(spri->page, npc0.x-4, npc0.y-TILEWH, 24, 96, 24, 32, &npctmp); + modexShowPage(spri->page); + npc0.d = 0; + } + npc0.triggerx = npc0.tx-1; + npc0.triggery = npc0.ty; + } + + //down movement + if(npc0.d == 3) + { + if(npc0.ty < MAPY && !(npc0.tx == TRIGGX && npc0.ty+1 == TRIGGY) && !(npc0.tx == player.tx && npc0.ty == player.ty+1)) + { + if(npc0.q<=(TILEWH/SPEED)) + { + INC_PER_FRAME_NPC; + npc0.y+=SPEED; + //animatePlayer(bg, spri, mask, 2, 0, npc0.x, npc0.y, persist_aniframe, q, &npctmp); + animatePlayer(bg, spri, npc0.d-1, 0, npc0.x, npc0.y, persist_aniframe, npc0.q, &npctmp); + modexShowPage(spri->page); + npc0.q++; + } else { npc0.q = 1; npc0.d = 0; npc0.ty++; } + } + else + { + modexCopyPageRegion(spri->page, bg->page, npc0.x-4, npc0.y-TILEWH, npc0.x-4, npc0.y-TILEWH, 24, 32); + modexDrawSpriteRegion(spri->page, npc0.x-4, npc0.y-TILEWH, 24, 64, 24, 32, &npctmp); + modexShowPage(spri->page); + npc0.d = 0; + } + npc0.triggerx = npc0.tx; + npc0.triggery = npc0.ty+1; + } + + //up movement + if(npc0.d == 1) + { + if(npc0.ty > 1 && !(npc0.tx == TRIGGX && npc0.ty-1 == TRIGGY) && !(npc0.tx+1 == player.tx && npc0.ty == player.ty-1)) + { + if(npc0.q<=(TILEWH/SPEED)) + { + INC_PER_FRAME_NPC; + npc0.y-=SPEED; + //animatePlayer(bg, spri, mask, 0, 0, npc0.x, npc0.y, persist_aniframe, q, &npctmp); + modexShowPage(spri->page); + animatePlayer(bg, spri, npc0.d-1, 0, npc0.x, npc0.y, persist_aniframe, npc0.q, &npctmp); + npc0.q++; + } else { npc0.q = 1; npc0.d = 0; npc0.ty--; } + } + else + { + modexCopyPageRegion(spri->page, bg->page, npc0.x-4, npc0.y-TILEWH, npc0.x-4, npc0.y-TILEWH, 24, 32); + modexDrawSpriteRegion(spri->page, npc0.x-4, npc0.y-TILEWH, 24, 0, 24, 32, &npctmp); + modexShowPage(spri->page); + npc0.d = 0; + } + npc0.triggerx = npc0.tx; + npc0.triggery = npc0.ty-1; + } + + if((npc0.triggery == player.ty && npc0.triggerx == player.tx) || (npc0.ty == player.ty && npc0.tx == player.tx)){ player.hp--; } +*/ + + //player movement + //TODO: make movement into aa function! //right movement if((keyp(77) && !keyp(75) && player.d == 0) || player.d == 2) { @@ -308,16 +440,17 @@ void main() { player.triggery = player.ty-1; } //modexClearRegion(mask->page, 66, 66, 2, 40, 0); - - if((player.triggerx == TRIGGX && player.triggery == TRIGGY) && keyp(KEY_ENTER)) + + if(((player.triggerx == TRIGGX && player.triggery == TRIGGY) && keyp(KEY_ENTER))||(player.tx == 5 && player.ty == 5)) { short i; - for(i=600; i>=400; i--) + for(i=800; i>=400; i--) { sound(i); } nosound(); - } + } + if(player.q == (TILEWH/SPEED)+1 && player.d > 0 && (player.triggerx == 5 && player.triggery == 5)){ player.hp--; } } /* fade back to text mode */ @@ -333,7 +466,8 @@ void main() { printf("player.tx: %d\n", player.tx); printf("player.ty: %d\n", player.ty); printf("player.triggx: %d\n", player.triggerx); - printf("player.triggy: %d\n", player.triggery); + printf("player.triggy: %d\n", player.triggery); + printf("player.hp: %d\n", player.hp); printf("player.q: %d\n", player.q); printf("player.d: %d\n", player.d); printf("temporary player sprite 0: http://www.pixiv.net/member_illust.php?mode=medium&illust_id=45556867\n"); @@ -566,7 +700,12 @@ mapDrawCol(map_view_t *mv, int tx, int ty, word x) { } i += mv->map->width; } -} +} + +/*void npcmove(map_view_t bg, map_view_t fg, ) +{ + +}*/ void animatePlayer(map_view_t *src, map_view_t *dest, /*map_view_t *top, */sword d, short scrolloffsetswitch, int x, int y, int ls, int lp, bitmap_t *bmp) -- 2.39.2