20220723 - Correction des bugs dans la destruction des blocs, on peut maintenant bouger les blocs dans l'inventaire.
This commit is contained in:
parent
6b51915814
commit
283b3e6248
|
@ -54,6 +54,9 @@ set(ASSETS_fx
|
|||
assets-fx/tools/selectcross.png
|
||||
assets-fx/ui_icons/invnormal.png
|
||||
assets-fx/ui_icons/invselected.png
|
||||
assets-fx/ui_icons/craftselect.png
|
||||
assets-fx/ui_icons/arrow1.png
|
||||
assets-fx/ui_icons/arrow2.png
|
||||
assets-fx/tiles/overlays/block_break1.png
|
||||
assets-fx/tiles/overlays/block_break2.png
|
||||
assets-fx/tiles/overlays/block_break3.png
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 104 B |
Binary file not shown.
After Width: | Height: | Size: 105 B |
Binary file not shown.
After Width: | Height: | Size: 154 B |
|
@ -4,3 +4,12 @@ invnormal.png:
|
|||
invselected.png:
|
||||
type: bopti-image
|
||||
name: invselected
|
||||
craftselect.png:
|
||||
type: bopti-image
|
||||
name: craftselection
|
||||
arrow1.png:
|
||||
type: bopti-image
|
||||
name: arrow_1
|
||||
arrow2.png:
|
||||
type: bopti-image
|
||||
name: arrow_2
|
||||
|
|
Binary file not shown.
92
src/main.c
92
src/main.c
|
@ -218,6 +218,9 @@ void drawdetailinv(){
|
|||
if(i == player.invselect){
|
||||
dtext(60, pos, C_BLACK, SELECTED);
|
||||
}
|
||||
if(i == player.invmoving){
|
||||
dtext(66, pos, C_BLACK, MOVING);
|
||||
}
|
||||
}
|
||||
}
|
||||
int main(void) {
|
||||
|
@ -294,11 +297,15 @@ int main(void) {
|
|||
player.destroytime = 3;
|
||||
player.select_tx = 0;
|
||||
player.select_ty = 0;
|
||||
player.invselect = 0;
|
||||
player.invmoving = 0;
|
||||
for(i=0;i!=INVENTORY_SIZE;i++){
|
||||
player.inventoryitems[i] = 0;
|
||||
player.inventorynum[i] = 0;
|
||||
}
|
||||
}else if(game == 3){
|
||||
player.select_tx = ((player.x+player.selx)>>3);
|
||||
player.select_ty = ((player.y+player.sely)>>3);
|
||||
clearevents();
|
||||
if(keydown(KEY_RIGHT) && (collisiononmap(player.x, player.y, terrain, 67, 35) == 0 && collisiononmap(player.x, player.y, terrain, 67, 25) == 0)){
|
||||
player.x++;
|
||||
|
@ -368,6 +375,11 @@ int main(void) {
|
|||
}else if (keydown(KEY_6) && player.selx<16){
|
||||
player.selx++;
|
||||
}
|
||||
if(((player.x+player.selx)>>3)!=player.select_tx||((player.y+player.sely)>>3)!=player.select_ty){
|
||||
player.overlayframe = 0;
|
||||
player.overlaytimer = 0;
|
||||
player.wasdestroyingbefore = 0;
|
||||
}
|
||||
pos = ((player.y+player.sely)>>3)*WORLD_WIDTH+((player.x+player.selx)>>3);
|
||||
if(pos<=WORLD_WIDTH*WORLD_HEIGHT && pos>=0){
|
||||
clearevents();
|
||||
|
@ -404,8 +416,6 @@ int main(void) {
|
|||
player.wasdestroyingbefore = 0;
|
||||
}
|
||||
}
|
||||
player.select_tx = ((player.x+player.selx)>>3);
|
||||
player.select_ty = ((player.y+player.sely)>>3);
|
||||
clearevents();
|
||||
if (keydown(KEY_0)){
|
||||
if(player.invselect<INVENTORY_SIZE-1){
|
||||
|
@ -444,6 +454,84 @@ int main(void) {
|
|||
while(keydown(KEY_EXE)){
|
||||
clearevents();
|
||||
}
|
||||
}else if(keydown(KEY_1)){
|
||||
game = 5;
|
||||
clearevents();
|
||||
while(keydown(KEY_1)){
|
||||
clearevents();
|
||||
}
|
||||
}
|
||||
clearevents();
|
||||
if(keydown(KEY_SHIFT)){
|
||||
player.invmoving = player.invselect;
|
||||
clearevents();
|
||||
while(keydown(KEY_SHIFT)){
|
||||
clearevents();
|
||||
}
|
||||
}
|
||||
clearevents();
|
||||
if(keydown(KEY_ALPHA)){
|
||||
if(player.inventorynum[player.invselect] != 64 && (player.inventoryitems[player.invselect] == player.inventoryitems[player.invmoving] || player.inventoryitems[player.invselect] == 0)){
|
||||
if(player.inventoryitems[player.invselect] == 0){
|
||||
player.inventoryitems[player.invselect] = player.inventoryitems[player.invmoving];
|
||||
}
|
||||
while(player.inventorynum[player.invselect] != 64 && player.inventorynum[player.invmoving] != 0){
|
||||
player.inventorynum[player.invselect]++;
|
||||
player.inventorynum[player.invmoving]--;
|
||||
}
|
||||
if(player.inventorynum[player.invmoving] == 0){
|
||||
player.inventoryitems[player.invmoving] = 0;
|
||||
}
|
||||
}
|
||||
clearevents();
|
||||
while(keydown(KEY_ALPHA)){
|
||||
clearevents();
|
||||
}
|
||||
}
|
||||
clearevents();
|
||||
if(keydown(KEY_X2)){
|
||||
if(player.inventorynum[player.invselect] != 64 && (player.inventoryitems[player.invselect] == player.inventoryitems[player.invmoving] || player.inventoryitems[player.invselect] == 0)){
|
||||
if(player.inventoryitems[player.invselect] == 0){
|
||||
player.inventoryitems[player.invselect] = player.inventoryitems[player.invmoving];
|
||||
}
|
||||
if(player.inventorynum[player.invselect] != 64 && player.inventorynum[player.invmoving] != 0){
|
||||
player.inventorynum[player.invselect]++;
|
||||
player.inventorynum[player.invmoving]--;
|
||||
}
|
||||
if(player.inventorynum[player.invmoving] == 0){
|
||||
player.inventoryitems[player.invmoving] = 0;
|
||||
}
|
||||
}
|
||||
clearevents();
|
||||
while(keydown(KEY_X2)){
|
||||
clearevents();
|
||||
}
|
||||
}
|
||||
clearevents();
|
||||
if (keydown(KEY_0)){
|
||||
if(player.invselect<INVENTORY_SIZE-1){
|
||||
player.invselect++;
|
||||
}else{
|
||||
player.invselect = 0;
|
||||
}
|
||||
dclear(C_WHITE);
|
||||
drawdetailinv();
|
||||
dupdate();
|
||||
clearevents();
|
||||
while(keydown(KEY_0)){
|
||||
clearevents();
|
||||
}
|
||||
}
|
||||
}else if(game == 5){
|
||||
dclear(C_WHITE);
|
||||
dupdate();
|
||||
clearevents();
|
||||
if(keydown(KEY_EXE)){
|
||||
game = 4;
|
||||
clearevents();
|
||||
while(keydown(KEY_EXE)){
|
||||
clearevents();
|
||||
}
|
||||
}
|
||||
clearevents();
|
||||
if (keydown(KEY_0)){
|
||||
|
|
|
@ -2,4 +2,5 @@
|
|||
# define WORLDSEL_EMPTY "--- VIDE ---" // Empty slot in the game selection menu.
|
||||
# define WORLDGEN_INFO "Generation ..." // Text when waiting for world generation.
|
||||
# define SELECTED "<" // Selected block info.
|
||||
# define MOVING "M" // Moving block info.
|
||||
# define INV_INFO "INVENTAIRE & CRAFTING"
|
|
@ -13,6 +13,7 @@ struct Player{
|
|||
int inventoryitems[INVENTORY_SIZE];
|
||||
int inventorynum[INVENTORY_SIZE];
|
||||
int invselect;
|
||||
int invmoving;
|
||||
int overlayframe;
|
||||
int overlaytimer;
|
||||
int select_tx;
|
||||
|
|
Loading…
Reference in New Issue