20220718 - Nouvel inventaire.

This commit is contained in:
mibi88 2022-07-18 13:39:46 +02:00
parent e8c295b523
commit 069b763156
8 changed files with 95 additions and 24 deletions

View File

@ -26,9 +26,10 @@ set(ASSETS_fx
assets-fx/player/skin1/player3.png
assets-fx/tools/pickaxe.png
assets-fx/tools/selectcross.png
assets-fx/ui_icons/invnormal.png
assets-fx/ui_icons/invselected.png
# ...
)
fxconv_declare_assets(${ASSETS} ${ASSETS_fx} ${ASSETS_cg} WITH_METADATA)
add_executable(myaddin ${SOURCES} ${ASSETS} ${ASSETS_${FXSDK_PLATFORM}})
@ -38,4 +39,4 @@ target_link_libraries(myaddin Gint::Gint)
if("${FXSDK_PLATFORM_LONG}" STREQUAL fx9860G)
generate_g1a(TARGET myaddin OUTPUT "Builder.g1a"
NAME "Builder" ICON assets-fx/icon.png)
endif()
endif()

View File

@ -1,3 +1,12 @@
# Builder
A little game like Minecraft or Terraria.
A little game like Minecraft or Terraria.
# Build an install
Install gint if you have not already installed it.
```$ fxsdk build-fx
$ bash clear.sh```
Copy `Builder.g1a` that is in `./latest-build/` to the main folder of your calculator.

View File

@ -0,0 +1,6 @@
invnormal.png:
type: bopti-image
name: invnormal
invselected.png:
type: bopti-image
name: invselected

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

3
clear.sh Normal file
View File

@ -0,0 +1,3 @@
rm ./build-fx ./latest-build --recursive --force
mkdir latest-build
mv Builder.g1a latest-build/Builder.g1a

BIN
latest-build/Builder.g1a Normal file

Binary file not shown.

View File

@ -22,6 +22,8 @@ extern bopti_image_t skin1_player_left2;
extern bopti_image_t skin1_player_right1;
extern bopti_image_t skin1_player_right2;
extern bopti_image_t select_tool;
extern bopti_image_t invnormal;
extern bopti_image_t invselected;
# include "player.h"
@ -140,6 +142,51 @@ int collisiononmap(int x, int y, unsigned short int * terrain, int testx, int te
return 0;
}
Player player;
void drawinventory(){
int i;
for(i=0;i!=5;i++){
if(i == player.invselect){
dimage(26+i*15, 49, &invselected);
}else{
dimage(26+i*15, 49, &invnormal);
}
switch(player.inventoryitems[i]){
case 1:
dimage(26+i*15+3, 52, &soil_tile); break;
case 2:
dimage(26+i*15+3, 52, &stone_tile); break;
case 3:
dimage(26+i*15+3, 52, &coal_tile); break;
case 4:
dimage(26+i*15+3, 52, &steel_tile); break;
case 5:
dimage(26+i*15+3, 52, &wood_tile); break;
}
}
}
void drawdetailinv(){
int i;
for(i=0;i!=INVENTORY_SIZE;i++){
pos = i*8;
switch(player.inventoryitems[i]){
case 1:
dimage(5, pos, &soil_tile); break;
case 2:
dimage(5, pos, &stone_tile); break;
case 3:
dimage(5, pos, &coal_tile); break;
case 4:
dimage(5, pos, &steel_tile); break;
case 5:
dimage(5, pos, &wood_tile); break;
}
itoa(player.inventorynum[i], tmp_char);
dtext(20, pos, C_BLACK, tmp_char);
if(i == player.invselect){
dtext(60, pos, C_BLACK, SELECTED);
}
}
}
int main(void) {
dclear(C_WHITE);
dimage(16, TITLE_IMAGE_MARGIN, &title_img);
@ -309,6 +356,10 @@ int main(void) {
}else{
player.invselect = 0;
}
clearevents();
while(keydown(KEY_0)){
clearevents();
}
}
clearevents();
if(keydown(KEY_MENU)){
@ -317,35 +368,36 @@ int main(void) {
// dtext(1, 1, C_BLACK, "test");
mappartdisplaying(player.x, player.y, terrain, player.orient+player.animation);
dimage(player.selx + 56, player.sely + 20, &select_tool);
drawinventory();
dupdate();
sleep_ms(20);
}else if(game == 4){
dclear(C_WHITE);
for(i=0;i!=INVENTORY_SIZE;i++){
pos = i*8;
switch(player.inventoryitems[i]){
case 1:
dimage(5, pos, &soil_tile); break;
case 2:
dimage(5, pos, &stone_tile); break;
case 3:
dimage(5, pos, &coal_tile); break;
case 4:
dimage(5, pos, &steel_tile); break;
case 5:
dimage(5, pos, &wood_tile); break;
}
itoa(player.inventorynum[i], tmp_char);
dtext(20, pos, C_BLACK, tmp_char);
if(i == player.invselect){
dtext(60, pos, C_BLACK, SELECTED);
}
}
drawdetailinv();
dupdate();
clearevents();
if(keydown(KEY_EXE)){
game = 3;
clearevents();
while(keydown(KEY_EXE)){
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();
}
}
dupdate();
}
clearevents();
}