update
BIN
game_bowling/Assets/floor_base.jpg
Normal file
|
After Width: | Height: | Size: 822 KiB |
BIN
game_bowling/Assets/floor_nor.jpg
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
game_bowling/Assets/floor_occ.jpg
Normal file
|
After Width: | Height: | Size: 966 KiB |
BIN
game_bowling/Assets/floor_rough.jpg
Normal file
|
After Width: | Height: | Size: 271 KiB |
BIN
game_bowling/Assets/keys.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
game_bowling/Assets/menu.jpg
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
game_bowling/Assets/roll.wav
Normal file
BIN
game_bowling/Assets/strike.wav
Normal file
BIN
game_bowling/Assets/ui_exit.png
Normal file
|
After Width: | Height: | Size: 698 B |
BIN
game_bowling/Assets/ui_play.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
game_bowling/Assets/ui_refresh.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
3
game_bowling/Bundled/canvas/GameCanvas.files
Normal file
@ -0,0 +1,3 @@
|
||||
../../Assets/ui_exit.png
|
||||
../../Assets/ui_refresh.png
|
||||
../../Assets/keys.png
|
||||
1
game_bowling/Bundled/canvas/GameCanvas.json
Normal file
@ -0,0 +1 @@
|
||||
{"name":"untitled","x":0,"y":0,"width":1280,"height":720,"elements":[{"id":0,"type":1,"name":"Exit","event":"exit","x":15,"y":13,"width":64,"height":64,"text":"Image","asset":"ui_exit.png","color":-1,"anchor":0,"children":[],"visible":true,"rotation":0},{"id":1,"type":1,"name":"Refresh","event":"refresh","x":15,"y":91,"width":64,"height":64,"text":"Image","asset":"ui_refresh.png","color":-1,"anchor":0,"children":[],"visible":true,"rotation":0,"alignment":0},{"id":4,"type":1,"name":"Image","event":"","x":340,"y":620,"width":600,"height":70,"text":"Image","asset":"keys.png","color":-1,"anchor":0,"children":[],"visible":true,"rotation":0,"alignment":0}],"assets":[{"name":"ui_exit.png","file":"../../Assets/ui_exit.png","id":0},{"name":"ui_refresh.png","file":"../../Assets/ui_refresh.png","id":1},{"name":"keys.png","file":"../../Assets/keys.png","id":2}],"theme":"Default Light"}
|
||||
2
game_bowling/Bundled/canvas/MenuCanvas.files
Normal file
@ -0,0 +1,2 @@
|
||||
../../Assets/ui_play.png
|
||||
../../Assets/menu.jpg
|
||||
1
game_bowling/Bundled/canvas/MenuCanvas.json
Normal file
@ -0,0 +1 @@
|
||||
{"name":"untitled","x":0,"y":0,"width":1280,"height":720,"elements":[{"id":4,"type":1,"name":"Image","event":"","x":0,"y":0,"width":1280,"height":720,"rotation":0,"text":"My Image","asset":"menu.jpg","progress_at":0,"progress_total":100,"strength":1,"alignment":0,"anchor":0,"parent":null,"children":[],"visible":true},{"id":3,"type":1,"name":"Button","event":"play","x":580,"y":280,"width":160,"height":160,"rotation":0,"text":"My Image.002","asset":"ui_play.png","progress_at":0,"progress_total":100,"strength":1,"alignment":0,"anchor":0,"parent":null,"children":[],"visible":true}],"assets":[{"name":"ui_play.png","file":"../../Assets/ui_play.png","id":0},{"name":"menu.jpg","file":"../../Assets/menu.jpg","id":1}],"theme":"Default Light"}
|
||||
1
game_bowling/Bundled/canvas/_themes.json
Normal file
@ -0,0 +1 @@
|
||||
[{"NAME":"Default Light","WINDOW_BG_COL":-1052689,"WINDOW_TINT_COL":-14540254,"ACCENT_COL":-1118482,"ACCENT_HOVER_COL":-4473925,"ACCENT_SELECT_COL":-5592406,"BUTTON_COL":-3355444,"BUTTON_TEXT_COL":-14540254,"BUTTON_HOVER_COL":-5000269,"BUTTON_PRESSED_COL":-5131855,"TEXT_COL":-6710887,"LABEL_COL":-5592406,"SEPARATOR_COL":-6710887,"HIGHLIGHT_COL":-14656100,"CONTEXT_COL":-5592406,"PANEL_BG_COL":-5592406,"FONT_SIZE":26,"ELEMENT_W":200,"ELEMENT_H":48,"ELEMENT_OFFSET":8,"ARROW_SIZE":10,"BUTTON_H":44,"CHECK_SIZE":30,"CHECK_SELECT_SIZE":16,"SCROLL_W":12,"TEXT_OFFSET":16,"TAB_W":24,"FILL_WINDOW_BG":false,"FILL_BUTTON_BG":true,"FILL_ACCENT_BG":false,"LINK_STYLE":0,"FULL_TABS":false},{"NAME":"New Theme","WINDOW_BG_COL":-1052689,"WINDOW_TINT_COL":-14540254,"ACCENT_COL":-1118482,"ACCENT_HOVER_COL":-4473925,"ACCENT_SELECT_COL":-5592406,"BUTTON_COL":-3355444,"BUTTON_TEXT_COL":-14540254,"BUTTON_HOVER_COL":-5000269,"BUTTON_PRESSED_COL":-5131855,"TEXT_COL":-6710887,"LABEL_COL":-5592406,"SEPARATOR_COL":-6710887,"HIGHLIGHT_COL":-14656100,"CONTEXT_COL":-5592406,"PANEL_BG_COL":-5592406,"FONT_SIZE":26,"ELEMENT_W":200,"ELEMENT_H":48,"ELEMENT_OFFSET":8,"ARROW_SIZE":10,"BUTTON_H":44,"CHECK_SIZE":30,"CHECK_SELECT_SIZE":16,"SCROLL_W":12,"TEXT_OFFSET":16,"TAB_W":24,"FILL_WINDOW_BG":false,"FILL_BUTTON_BG":true,"FILL_ACCENT_BG":false,"LINK_STYLE":0,"FULL_TABS":false},{"NAME":"New Theme.001","WINDOW_BG_COL":-1052689,"WINDOW_TINT_COL":-14540254,"ACCENT_COL":-1118482,"ACCENT_HOVER_COL":-4473925,"ACCENT_SELECT_COL":-5592406,"BUTTON_COL":-3355444,"BUTTON_TEXT_COL":-14540254,"BUTTON_HOVER_COL":-5000269,"BUTTON_PRESSED_COL":-5131855,"TEXT_COL":-6710887,"LABEL_COL":-5592406,"SEPARATOR_COL":-6710887,"HIGHLIGHT_COL":-14656100,"CONTEXT_COL":-5592406,"PANEL_BG_COL":-5592406,"FONT_SIZE":26,"ELEMENT_W":200,"ELEMENT_H":48,"ELEMENT_OFFSET":8,"ARROW_SIZE":10,"BUTTON_H":44,"CHECK_SIZE":30,"CHECK_SELECT_SIZE":16,"SCROLL_W":12,"TEXT_OFFSET":16,"TAB_W":24,"FILL_WINDOW_BG":false,"FILL_BUTTON_BG":true,"FILL_ACCENT_BG":false,"LINK_STYLE":0,"FULL_TABS":false}]
|
||||
1
game_bowling/README.md
Normal file
@ -0,0 +1 @@
|
||||
Keyboard `space` to bowl
|
||||
55
game_bowling/Sources/lnx/BallTrait.hx
Normal file
@ -0,0 +1,55 @@
|
||||
package lnx;
|
||||
|
||||
import iron.math.Vec4;
|
||||
import leenkx.trait.physics.RigidBody;
|
||||
|
||||
class BallTrait extends iron.Trait {
|
||||
|
||||
@prop
|
||||
var impulse = 65.0;
|
||||
|
||||
var fired = false;
|
||||
var rb:RigidBody;
|
||||
var start = new Vec4();
|
||||
|
||||
public function new() {
|
||||
super();
|
||||
|
||||
notifyOnInit(function() {
|
||||
rb = object.getTrait(RigidBody);
|
||||
start.setFrom(object.transform.loc);
|
||||
});
|
||||
|
||||
notifyOnUpdate(function() {
|
||||
|
||||
var kb = iron.system.Input.getKeyboard();
|
||||
var tr = object.transform;
|
||||
|
||||
if (!fired) {
|
||||
if (kb.started("x") || kb.started("space")) {
|
||||
rb.applyImpulse(new Vec4(0, impulse, 0));
|
||||
fired = true;
|
||||
}
|
||||
else if (kb.down("left") && tr.loc.x > -0.9) {
|
||||
tr.loc.x -= 0.02;
|
||||
tr.buildMatrix();
|
||||
rb.syncTransform();
|
||||
}
|
||||
else if (kb.down("right") && tr.loc.x < 0.9) {
|
||||
tr.loc.x += 0.02;
|
||||
tr.buildMatrix();
|
||||
rb.syncTransform();
|
||||
}
|
||||
}
|
||||
|
||||
if (fired && tr.loc.z < -10) {
|
||||
tr.loc.setFrom(start);
|
||||
tr.buildMatrix();
|
||||
rb.setLinearVelocity(0, 0, 0);
|
||||
rb.setAngularVelocity(0, 0, 0);
|
||||
rb.syncTransform();
|
||||
fired = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
24
game_bowling/Sources/lnx/PinTrait.hx
Normal file
@ -0,0 +1,24 @@
|
||||
package lnx;
|
||||
|
||||
class PinTrait extends iron.Trait {
|
||||
|
||||
public static var pinsRemoved = 0;
|
||||
|
||||
public function new() {
|
||||
super();
|
||||
|
||||
pinsRemoved = 0;
|
||||
|
||||
notifyOnUpdate(function() {
|
||||
|
||||
if (object.transform.loc.z < - 20) {
|
||||
object.remove();
|
||||
|
||||
if (++pinsRemoved >= 10) {
|
||||
leenkx.system.Event.send("exit");
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
BIN
game_bowling/game_bowling.blend
Normal file
BIN
game_bowling/pin.blend
Normal file
BIN
game_bowling/textures/bowling.jpg
Normal file
|
After Width: | Height: | Size: 109 KiB |