소스 검색

Merge branch 'master' of http://git.onarbooks.com/LosPoulos/mafalda-web

Nikatlas 6 년 전
부모
커밋
fd3753b057

BIN
public/files/assets/ui/papyrus.jpg


BIN
src/Game/assets/papyrus.jpg


+ 82 - 0
src/Game/views/base/CardCollection.js

@@ -0,0 +1,82 @@
+import * as PIXI from 'pixi.js';
+import GuiableContainer from '../../../helpers/Guiable';
+import Card from '../base/Card';
+
+const DefaultImageUrl = '/files/assets/ui/papyrus.jpg';
+const DefaultImage = PIXI.Texture.fromImage(DefaultImageUrl);
+
+class CardCollection extends GuiableContainer{
+    constructor(props){
+        super(props);
+        let {
+            image,
+            x,
+            y
+        } = props;
+
+        // Properties Component 
+        this.imageURL = image || DefaultImageUrl;
+        this.position.set(x,y);
+
+        this.x = x || 0;
+        this.y = y || 0;
+
+          // GUI
+        this.addFolder('CardCollection');
+        this.addToFolder('CardCollection', this, 'imageURL').onFinishChange((v) => this.loadImage(v));
+        this.addToFolder('CardCollection', this, 'x').onFinishChange((v) => this.position.x = v);
+        this.addToFolder('CardCollection', this, 'y').onFinishChange((v) => this.position.y = v);
+        //
+
+        this.construct(props);
+    }
+    construct(props){
+        let [w,h] = [800,600];
+
+        this.sprite = new PIXI.Sprite(DefaultImage);
+        this.sprite.anchor.set(0.5,0.5);
+        this.sprite.width = w;
+        this.sprite.height= h;
+
+        this.addChild(this.sprite);
+
+        let card = new Card({'x':2*w/3, 'y':-h/2});
+        this.sprite.addChild(card);
+        let card2 = new Card({'x':w/3, 'y':-h/2});
+        this.sprite.addChild(card2);
+        let card3 = new Card({'x':0, 'y':-h/2});
+        this.sprite.addChild(card3);
+        let card4 = new Card({'x':-2*w/3, 'y':-h/2});
+        this.sprite.addChild(card4);
+        let card5 = new Card({'x':-w/3, 'y':-h/2});
+        this.sprite.addChild(card5);
+
+
+
+    }
+
+    loadImage(img) {
+        this.imageURL = img;
+        this.setTexture(PIXI.Texture.fromImage(img));
+    }
+
+    setTexture(texture) {
+        this.sprite.texture = texture;
+    }
+
+    _kill() {
+        super._kill();
+    }
+
+    getAsJSON() {
+        return {
+            component: 'base/CardCollection',
+            image: this.imageURL,
+            x: this.position.x,
+            y: this.position.y
+        };
+    }
+
+}
+
+export default CardCollection;

+ 83 - 0
src/Game/views/base/CollectionDeck.js

@@ -0,0 +1,83 @@
+import * as PIXI from 'pixi.js';
+import GuiableContainer from '../../../helpers/Guiable';
+import CardHolder from '../base/CardHolder';
+import Card from '../base/Card';
+
+const DefaultImageUrl = '/files/assets/ui/papyrus.jpg';
+const DefaultImage = PIXI.Texture.fromImage(DefaultImageUrl);
+
+class CollectionDeck extends GuiableContainer{
+    constructor(props){
+        super(props);
+        let {
+            image,
+            x,
+            y
+        } = props;
+
+        // Properties Component 
+        this.imageURL = image || DefaultImageUrl;
+        this.position.set(x,y);
+
+        this.x = x || 0;
+        this.y = y || 0;
+
+        // GUI
+        this.addFolder('CollectionDeck');
+        this.addToFolder('CollectionDeck', this, 'imageURL').onFinishChange((v) => this.loadImage(v));
+        this.addToFolder('CollectionDeck', this, 'x').onFinishChange((v) => this.position.x = v);
+        this.addToFolder('CollectionDeck', this, 'y').onFinishChange((v) => this.position.y = v);
+        //
+
+        this.construct(props);
+    }
+
+    construct(props){
+        let [w,h] = [200,600];
+
+        this.sprite = new PIXI.Sprite(DefaultImage);
+        this.sprite.anchor.set(0.5,0.5);
+        this.sprite.width = w;
+        this.sprite.height= h;
+
+        this.addChild(this.sprite);
+
+        let cardHolder = new CardHolder({'x':0,'y':0,'w':60,'h':96});
+        this.addChild(cardHolder);
+        let cardHolder2 = new CardHolder({'x':0,'y':100,'w':60,'h':96});
+        this.addChild(cardHolder2);
+        let cardHolder3 = new CardHolder({'x':0,'y':0,'w':60,'h':96});
+        this.addChild(cardHolder3);
+        let cardHolder4 = new CardHolder({'x':0,'y':0,'w':60,'h':96});
+        this.addChild(cardHolder4);
+        let cardHolder5 = new CardHolder({'x':0,'y':0,'w':60,'h':96});
+        this.addChild(cardHolder5);
+
+
+
+    }
+
+    loadImage(img) {
+        this.imageURL = img;
+        this.setTexture(PIXI.Texture.fromImage(img));
+    }
+
+    setTexture(texture) {
+        this.sprite.texture = texture;
+    }
+
+    _kill() {
+        super._kill();
+    }
+
+    getAsJSON() {
+        return {
+            component: 'base/CollectionDeck',
+            image: this.imageURL,
+            x: this.position.x,
+            y: this.position.y
+        };
+    }
+}
+
+export default CollectionDeck;

+ 19 - 0
src/Game/views/demo/CardCollectionDemo.js

@@ -0,0 +1,19 @@
+import * as PIXI from 'pixi.js';
+
+import CardCollection from '../base/CardCollection';
+import CollectionDeck from '../base/CollectionDeck';
+
+class CardCollectionDemo extends PIXI.Container{
+	constructor(){
+		super();
+
+		let cardCollection = new CardCollection({});
+		this.addChild(cardCollection);
+		let collectionDeck = new CollectionDeck({'x': 600, 'y':0 });
+		this.addChild(collectionDeck);
+	}
+
+	getAsJSON = () => {return {component: 'demo/CardCollectionDemo'}}
+}
+
+export default CardCollectionDemo;