2 Revize 8f4857406e ... 020b7fc2cb

Autor SHA1 Zpráva Datum
  kva 020b7fc2cb edit several tutorial pictures před 1 rokem
  kva 97ed101afb tutorial update and more minor edits před 1 rokem
6 změnil soubory, kde provedl 50 přidání a 20 odebrání
  1. binární
      graphics/arrow_col.bmp
  2. binární
      graphics/arrow_row.bmp
  3. binární
      graphics/good.bmp
  4. 9 1
      include/state_tutorial.h
  5. 1 1
      src/state_start_menu.cpp
  6. 40 18
      src/state_tutorial.cpp

binární
graphics/arrow_col.bmp


binární
graphics/arrow_row.bmp


binární
graphics/good.bmp


+ 9 - 1
include/state_tutorial.h

@@ -3,6 +3,12 @@
 
 #include "state_base.h"
 #include "vn_text_output.h"
+#include "bn_sprite_items_arrow_col.h"
+#include "bn_sprite_items_arrow_row.h"
+#include "bn_sprite_items_bar_horz.h"
+#include "bn_sprite_items_good.h"
+#include "bn_sprite_items_not_good.h"
+
 
 class TutorialMode : public GameState
 {
@@ -11,6 +17,8 @@ private:
     bn::optional<bn::regular_bg_ptr> bg_foreground;
     bn::regular_bg_map_ptr map;
 
+    bn::optional<bn::sprite_ptr> sprite;
+
     int script_ptr,symbol_ptr,line_ptr;
 
     const int map_redraw_start_x = 8;
@@ -29,7 +37,7 @@ private:
 
     void clearBG();
 
-    void BasicRulesExample(bool);
+    void BasicRulesExample(bool,bool);
     void SeparatedSquaresExample(bool);
     void SeparatedSquaresOrderExample(bool, bool);
 

+ 1 - 1
src/state_start_menu.cpp

@@ -144,7 +144,7 @@ int MainMenu::updateState()
     }}
     else
     {
-        logo = buildSprite(bn::sprite_items::scribble_star, 80, 10);
+        logo = buildSprite(bn::sprite_items::scribble_star, 80, 4);
         //logo->set_visible(true);
         displayCredits();
     }

+ 40 - 18
src/state_tutorial.cpp

@@ -7,12 +7,12 @@ namespace tutorial
         "Welcome to notenogram's tutorial mode! Press A to go forward, START to quit anytime.",
         "Chances are this is the first time you've ever gave a picross/nonogram game a go, and if so, this tutorial on Picross 101 is here to help!",
         //2 - basic rules
-        "The objective of solving a picross puzzle is filling squares in a finite rectangular grid according to numeric hints on the left and the top.",
+        "The objective of solving a picross puzzle is filling squares/cells in a finite rectangular grid according to numeric hints on the left and the top.",
         //3
         "Kinda like regular crossword, except you get a pixel picture as a result of completion (also \"picross\" = \"picture crossword\", so there you have it).",
         "Each numeric row on the left or column on top represents the number of colored squares in the grid's respective row or column.",
         "So if second row from the top says '5', it means second row from the top of the grid should have five colored squares.",
-        "You can color a square by moving the pen cursor to it using the D-pad and pressing A.",
+        "You can color a square by moving the pen cursor to it using the D-pad and pressing A button.",
         //7 - separated
         "If there's more than one number of colored squares hinted at, it means that these groups of squares are separated by at least one empty square.",
         //8
@@ -26,13 +26,13 @@ namespace tutorial
         //13
         "Same with the row of cells - start with one colored square from the left, then skip the next one to the right, then color the rest.",
         //14
-        "These empty squares can be crossed out (using B button) to easier keep track of them.",
+        "These empty squares can be crossed out (using B button) to easily keep track of them.",
         "That's all there is to the basic rules. Now, let's smoothly transition to our first Picross Strategy Tip!",
         "Picross Strategy Tip #1: always color squares that you know should be colored, and always cross out empty squares you know should be empty.",
         //17 tip 1 full
         "If you're solving a 5x5 puzzle and there's a row or a column marked with number '5', it means the entire row or column should be colored.",
         //18 empty
-        "Likewise if a row or column has no number hints, this means there are no colored squares and you can cross them entirely!",
+        "Likewise if a row or column has no number hints, this means there are no colored squares and you can cross them out entirely!",
         "This also can be used for the groups of different amounts of squares - ",
         "if they span the entire row or column and can be separated by no more than one empty square inbetween, they can be safely marked accordingly.",
         //21 group
@@ -61,17 +61,17 @@ namespace tutorial
         "first imagine coloring from the left with one square gap between,",
         "then imagine coloring from the right (but starting with group of three), again with one square inbetween.",
         "Here, the remaining squares should be colored 100%, but that may not work for other numbers.",
-        "This method won't work with separate groups of one colored square or for total square count that's less than half of the row or column size, though.",
+        "For example, this won't work with single colored square groups or for less than half of the row or column of colored squares.",
         "Last Picross Strategy Tip for now, and it's the only tip that can be applied for video games.",
         "Picross Strategy Tip #3: take risks!",
-        "If you're not sure what to do and making a mistake won't cost you too much, take a guess and color the square you think should be colored!",
+        "If you're not sure what to do and making a mistake isn't critical, take a guess and color the square you think should be colored!",
         "Whether you're right or not, you'll still gain some valuable information that will help you out in solving the puzzle.",
         "Truth be told, not every picross puzzle pattern is designed to be logically solveable 100% (and this game is no exception).",
-        "As long as you expect minimal losses from it, some guesswork can definitely come in handy.",
-        "...Aaaaand that's it for now! Hope this was easy enough to understand and help you get started with notenogram's 12-by-12 puzzles.",
+        "As long as you expect minimal losses from it, some guesswork can definitely be of use.",
+        "...Aaaaand that's it for now! Hope this was easy enough to understand for getting started with notenogram's 12x12 puzzles.",
         "With the basics now in your grasp, try solving puzzle #1 in the Things category, as it should be the easiest one of them!",
         "Let me know if there is anything I should clarify or add to this tutorial via game's itch.io page's comment section.",
-        "I myself am still not very well-versed in picross, so in case I made a mistake or something, feel free to notify me!",
+        "I myself am still not very well-versed in picross, so in case I made a mistake or something be sure to notify me!",
         "Have fun д"
     };
 }
@@ -105,6 +105,8 @@ void TutorialMode::initScreen()
     PaperSheetPattern_Holed();
     refreshScreen(map);
     _text->redraw(tutorial::text[0]);
+    //sprite.valid(true);
+    //sprite->set_visible(false);
 }
 
 int TutorialMode::drawText()
@@ -123,10 +125,13 @@ int TutorialMode::drawText()
             switch (script_ptr)
             {
             case 2:
-                BasicRulesExample(false);
+                BasicRulesExample(false,false);
                 break;
             case 3:
-                BasicRulesExample(true);
+                BasicRulesExample(true,false);
+                break;
+            case 5:
+                BasicRulesExample(true,true);
                 break;
             case 7:
                 clearBG();
@@ -206,6 +211,7 @@ int TutorialMode::drawText()
 //clearing the screen's area for puzzle examples
 void TutorialMode::clearBG()
 {
+    sprite->set_visible(false);
     for (int i = map_redraw_start_x; i < map_redraw_width; ++i)
     {
         for (int j = map_redraw_start_y; j < map_redraw_height; ++j)
@@ -217,7 +223,7 @@ void TutorialMode::clearBG()
 
 //heart picross puzzle
 //parameter - checks whether to color in the solution
-void TutorialMode::BasicRulesExample(bool squares_colored)
+void TutorialMode::BasicRulesExample(bool squares_colored, bool highlight)
 {
     //row hints
     setCellTile(12, 10, 4);
@@ -246,6 +252,12 @@ void TutorialMode::BasicRulesExample(bool squares_colored)
         setCellTile(15, 13, 3);
         setCellTile(16, 12, 3);
     }
+
+    if (highlight)
+    {
+        sprite = buildSprite(bn::sprite_items::bar_horz, -9, -8);
+        sprite->set_visible(true);
+    }
 }
 //single-row example of separated square groups
 //parameter - flag that decides which example to draw (upper is correct, lower is not)
@@ -265,6 +277,12 @@ void TutorialMode::SeparatedSquaresExample(bool upper_row)
     setCellTile(13, row_index+1, 3);
     setCellTile(15, row_index+1, 3);
     setCellTile((upper_row ? 16 : 14), row_index+1, 3);
+
+    if (!upper_row)
+    {
+        sprite = buildSprite(bn::sprite_items::good, 40, -22);
+        sprite->set_visible(true);
+    }
 }
 //single-row/column example of ordering separated square groups
 //parameter - flags that decide which example to draw (row or column or crossed squares)
@@ -272,15 +290,17 @@ void TutorialMode::SeparatedSquaresOrderExample(bool row, bool cross)
 {
     if (row)
     {
-        setCellTile(13, 11, 4);
-        setCellTile(14, 11, 5);
-        setCellTile(15, 11, 3);
-        setCellTile(17, 11, 3);
-        setCellTile(18, 11, 3);
+        setCellTile(13, 10, 4);
+        setCellTile(14, 10, 5);
+        setCellTile(15, 10, 3);
+        setCellTile(17, 10, 3);
+        setCellTile(18, 10, 3);
+        sprite = buildSprite(bn::sprite_items::arrow_row, -9, -8);
+        sprite->set_visible(true);
     }
     else if (cross)
     {
-        setCellTile(16, 11, 2);
+        setCellTile(16, 10, 2);
         setCellTile(10, 13, 2);
     }
     else
@@ -291,6 +311,8 @@ void TutorialMode::SeparatedSquaresOrderExample(bool row, bool cross)
         setCellTile(10, 12, 3);
         setCellTile(10, 14, 3);
         setCellTile(10, 15, 3);
+        sprite = buildSprite(bn::sprite_items::arrow_col, -9, -8);
+        sprite->set_visible(true);
     }