forked from mibi88/Builder
20220718 - Nouvel inventaire.
This commit is contained in:
parent
e8c295b523
commit
069b763156
|
@ -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()
|
11
README.md
11
README.md
|
@ -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.
|
|
@ -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 |
|
@ -0,0 +1,3 @@
|
|||
rm ./build-fx ./latest-build --recursive --force
|
||||
mkdir latest-build
|
||||
mv Builder.g1a latest-build/Builder.g1a
|
Binary file not shown.
94
src/main.c
94
src/main.c
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue