Skocz do zawartości

P4nch0

Użytkownik
  • Zawartość

    161
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    2

Ostatnia wygrana P4nch0 w Rankingu w dniu 15 Wrzesień 2016

P4nch0 posiadał najczęściej polubioną zawartość!

Reputacja

16 Dobra

O P4nch0

  • Tytuł
    Wyjadacz

Ostatnie wizyty

693 wyświetleń profilu
  1. Tilemap z użyciem canvas

    W sumie to racja z rysowaniem po kolei tile, ja w sumie nie zagłębiałem się w to jak to jest przerysowywane z tileeditor, alee z ciekawości przeaanalizuję później i postaram się dać znać jak to chodzi u mnie
  2. Tilemap z użyciem canvas

    Niestety w twoim kodzie nie pomogę, bo nie pisałem map w taki sposób, ale czy nie prościej wykorzystac tileeditor i wygenerować mapę w json? czym właściwie różnią się te metody? jest różnica w wydajności?
  3. BeeFighters.com - w 100% autorska gra

    Kolego oprawę graficzną też sam robiłeś czy masz może kogoś godnego polecenia?
  4. gamedevmarket.net - Sklep z assetami do gier

    Szkoda, że w topdown mają tak mało prac.. chętnie bym zaopatrzył się w kilka rzeczy.
  5. Nietypowy RPG

    Pepele, napisałem do Ciebie wiadomość na prywatnej z drobnym opisem mojego projektu zerknij w wolnej chwili
  6. Epic Kingdoms - szukamy testerów

    A z ciekawości pytanie odnośnie tej drugiej gry kosmiczni, nie żebym wytykał, tylko ciekawią mnie czy są jakieś obejścia czy coś, bo jak wygląda sprawa z prawami autorskimi dragon ball'a?
  7. Duza mapa bez zacinania

    No kurcze miałbym z tym problem, jeśli ma ktoś pomysł to prosiłbym o wypowiedz Póki co po zmianie renderowania działa zadziwiająco zadowalająco, zobaczymy jak będzie dalej EDIT Fajnie działało na mocniejszym kompie, na słabszym już zacina.. Zastanawiam się, czy w phaserze też jest tak że on zapamiętuje elementy których gracz nie widzi, czy to nie jest tak, że rysuje wszystko na bieżąco?
  8. Duza mapa bez zacinania

    this.map.addTilesetImage('zew5', 'gamezewnetrzne'); this.map.addTilesetImage('all3', 'gameall'); //create layer this.backgroundlayer = this.map.createLayer('backgroundLayer'); this.blockedLayer = this.map.createLayer('blockedLayer'); this.backgroundLayer2 = this.map.createLayer('backgroundLayer2'); this.blockedLayer1 = this.map.createLayer('blockedLayer1'); this.secondLayer = this.map.createLayer('secondLayer'); this.thirdLayer = this.map.createLayer('thirdLayer'); this.funkcje = this.map.createLayer('funkcje'); //collision on blockedLayer this.map.setCollisionBetween(1, 5000, true, 'blockedLayer'); this.map.setCollisionBetween(1, 10000, true, 'blockedLayer1'); this.map.setCollisionBetween(1, 10000, true, 'funkcje'); Kod tworzący layers. Wszystko działa ładnie gdy zmieniłem: TopDownGame.game = new Phaser.Game(1024, 640, Phaser.AUTO, 'TRESC'); na: TopDownGame.game = new Phaser.Game(1024, 640, Phaser.CANVAS, 'TRESC'); Jakie w większej mierze może mieć to konsekwencje?
  9. Duza mapa bez zacinania

    Panowie, kolejne pytanie do tworzenia mapy pod phaser. Chciałbym stworzyć dużą mapę, wszystko chodzi gładko gdy mapa ma jeden layer, gdy dodaję kolejne zaczyna zacinać. jest jakiś sposób na zredukowanie ciężaru wczytywanych elementów?
  10. StellarArk.net

    Taka drobnostka Tekst samouczka "wyświetla się tutaj informacja o danym* elemencie". Ale pewnie przejrzycie to jeszcze nie raz Rejestracja juz się ładnie wyświetla
  11. Ponowny start w programowanie

    Ja również jestem zafascynowany weebówką. Ja też jestem laikiem i też zaczynałem w klikania w php. Obecnie poznaję java script i jego obiekt canvas. Do canvasu obsługę biblioteką phaser. Być może są ciekawsze technologie, ale poprostu polecam to w czym ja się bawię, może CIę zaciekawi Phaser: http://phaser.io/examples
  12. Phaser mapa multiplayer czasu rzeczywistego

    Masaakra to jest jakas ;D Przerobiłem wczoraj przykład, ale nie kumam kilku rzeczy.. Ogólny schemat trochę kumam już, muszę zrobić połączenie z bazą danych na głównej stronie gdzie jest ekran gry i później jakoś to przekazać do głównego pliku gry do funkcji update. Tylko że za cholerę nie kumam co i jak po kolei. Zainstalowałem Node.js, pisze coś w poradnikach o zainstalowani npm, alee nie mogę tego nigdzie znaleźć.. Później komendy do instalacji tego w konsoli, czy taką instalację wykonuje się tylko raz? Jak to się później przenosi na serwer strony?
  13. Phaser mapa multiplayer czasu rzeczywistego

    Dzięki Written. A no wiem, jednakże to był projekt nauka tak naprawdę, ale chcę go skońzzyć i zobaczyć czy coś z niego wyjdzie A co sądzisz żeby to zrobić standardowym php i ajaxem? W tym przykładzie co zawarłem wypowiadali się że nie jest to wcale gorsze rozwiązanie, tylko w sumie połowicznie sobie uzmysławiam jak mogłoby to wyglądać.
  14. Phaser mapa multiplayer czasu rzeczywistego

    Witam, Poczytalem dalej trochę ten tutorial i znalazłem pare iteresujących dla mnie rzeczy. Pierwsze pytanie mam o bibliotece library, autor dodaje ją za pomocą lini: <script src="/eureca.js"></script> eureca jest dużą biblioteką, ale nie widze nigdzie pliku eureca.js, poniżej link do niej: https://github.com/Ezelia/eureca.io Następnie widzę, że za pomocą komend: node server.js npm install engine.io npm install eureca.io Jest tworzony serwer, ale z tego co domniemam jest to lokalny serwer.. z tego co wyczytalem jest przekazywany do HTTP, ale nie bardzo kumam jak to przenieść do mnie.. //get EurecaServer class var EurecaServer = require('eureca.io').EurecaServer; //create an instance of EurecaServer var eurecaServer = new EurecaServer(); //attach eureca.io to our http server eurecaServer.attach(server); Później gdy serwer jest gotowy, wywoływana jest funkcja create(): var ready = false; var eurecaServer; //this function will handle client communication with the server var eurecaClientSetup = function() { //create an instance of eureca.io client var eurecaClient = new Eureca.Client(); eurecaClient.ready(function (proxy) { eurecaServer = proxy; //we temporary put create function here so we make sure to launch the game once the client is ready create(); ready = true; }); } Żeby to zrobić muszę chyba wyłączyć automatyczne wywoływanie funkcji create() tak jak w kursie: var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload, create: eurecaClientSetup, update: update, render: render }); Ja cąły schemat gry robiłem również opierając się o tutorial i niestety nie których rzeczy nie do końca rozumiem, ale u mnie wygląda to tak: Najpierw plik main.js var TopDownGame = TopDownGame || {}; TopDownGame.game = new Phaser.Game(700, 600, Phaser.AUTO, 'TRESC'); TopDownGame.game.state.add('Boot', TopDownGame.Boot); TopDownGame.game.state.add('Preload', TopDownGame.Preload); TopDownGame.game.state.add('Game', TopDownGame.Game); TopDownGame.game.state.start('Boot');// JavaScript Document Następnie startuje plik Boot.js var TopDownGame = TopDownGame || {}; TopDownGame.Boot = function(){}; //setting game configuration and loading the assets for the loading screen TopDownGame.Boot.prototype = { preload: function() { //assets we'll use in the loading screen this.load.image('preloadbar', 'assets/images/preloader-bar.png'); }, create: function() { //loading screen will have a white background this.game.stage.backgroundColor = '#fff'; //scaling options this.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL; //have the game centered horizontally this.scale.pageAlignHorizontally = true; this.scale.pageAlignVertically = true; //screen size will be set automatically this.scale.setScreenSize(true); //physics system this.game.physics.startSystem(Phaser.Physics.ARCADE); this.state.start('Preload'); } };// JavaScript Document I później pliki preload.js i game.js które pokazywałem w poście wczesniej i teraz nie wiem, gdzie tą funkcję create() startować po gotowości serwera. Na start to chyba wszystko.. jesli ma ktoś siłe, chciałby się zagłębić i pomóc mi poszerzyć wiedzę i projekt, będę bardzo wdzięczny Czytam kilka artykułów i zaczynam myśleć czy node.js jest tu odpowiedni.. czy nie lepiej zrobić to za pomoca pętlowania w funkcji update.. Tu znalazłem dobry temat o multiplayerze w phaserze: I z tego co czytam chyba lepiej byłoby to zrobić standardowym sposobem z baza danych, tylko jak? Muszę mieć tablicę w bazie danych gdzie będę miał x, y i id gracza? wtedy ciągle odczytywać za pomocą ajaxu tą tablicę i jeśli coś jest różne wtedy przesuwać daney obiekt do aktualnej pozycji?
  15. Panowie, Przyszedł czas abym zmierzył się ze stworzeniem mapy multiplayer. Na tą chwilę, w projekcie wygląda to tak, że tworzę świat, w którym gracz ma swoje podwóreczko i kilka map pobocznych dla swojego zawodu, typu hodowca, rolni, rybak itp. Chciałbym do tego dorzucić jakąś mapę, np rynek w której gracze mogli by się spotkać w czasie rzeczywistym tzn każdy sobie chodzi po swoim podwórku i pobocznych działeczkach, wyjdzie kawałek dalej i dochodzi do rynku, gdzie już mogą wejść wszyscy. Jest to do zrealizowania? Mapy tworzę w tileeditor, wszystko dodawane jest podstawowym schematem, czyli funkcja create, preload, update. Domyślam się, że pewnie będzie konieczny do tego websocket, tylko nie mam pomysłu jak podpiąć go pod to wszystko. Do tej pory, wszystkie dane przy starcie gry pobieram z bazy danych za pomocą php i ajaxu i teraz dylemat, czy zrobić przełom i wszystko zrobić za pomocą websocketa? Napewno daje to wiele możliwości, ale to dla mnie zielony temat. Być może zostawić to tak jak jest, ale obawiam się że jak będzie wiecej graczy, zapytania do bazy mogą lagować,co sądzicie? Bo jeśli nie, to chętnie zostawił bym to tak jak jest a websocketa użył tylko do obsługi multiplayerowej mapy. Pomóżcie Edit: Ok, to tak znalazłem fajny kurs z implementacja do phaser, alee nie dużo http://ezelia.com/2014/tutorial-creating-basic-multiplayer-game-phaser-eureca-io Jest podobna baza pliku do mojego, funkcja preload update itp. Tylko tak, w tutorialu jest plik serwer.js w którym to połączenie jest odpalane na localhoscie i tu moje pytanie jak to zaimplementować do strony gdy ona jest już na sewerze online? Następnym pytaniem jest jak napisać funkcję, która tworzyła by dołączających się graczy.. jak wgl podłączyć to tak aby graczowi pokazywali i ładowali się dołączający gracze? Jak wybrać na której mapie to myślę da się zrobić, zrobić warunek że jeśli mapa= xxx, alee jak to wszystko zacząć? Poniżej zarys głównych funkcji w mojej grze, obciąłem je sporo, tak aby mało ważne w tej chwili elementy nie zaśmiecały widoku. Preload: var TopDownGame = TopDownGame || {}; //loading the game assets TopDownGame.Preload = function(){}; TopDownGame.Preload.prototype = { preload: function() { //show loading screen this.preloadBar = this.add.sprite(this.game.world.centerX, this.game.world.centerY, 'preloadbar'); this.preloadBar.anchor.setTo(0.5); this.load.setPreloadSprite(this.preloadBar); //load game assets this.load.tilemap('podworko', 'assets/tilemaps/podworko.json', null, Phaser.Tilemap.TILED_JSON); this.load.spritesheet('player', 'assets/images/player.png',64,64); }, create: function() { this.state.start('Game'); } };// JavaScript Document W pliku game.js mam funkcje create, kilka funkcji tworzących obiekty na mapie i mapę z tile w formacie .json tworzonej w tilededitor i funkcję update var TopDownGame = TopDownGame || {}; start(); startdanemapa(); //title screen TopDownGame.Game = function(){}; TopDownGame.Game.prototype = { create: function() { this.map = this.game.add.tilemap(TopDownGame.level); //the first parameter is the tileset name as specified in Tiled, the second is the key to the asset this.map.addTilesetImage('tiles1', 'gameTiles1'); this.map.addTilesetImage('tiles', 'gameTiles'); this.map.addTilesetImage('dungeon', 'gamedungeon'); this.map.addTilesetImage('srodekdom', 'gamesrodekdom'); this.map.addTilesetImage('towntiles', 'gametowntiles'); this.map.addTilesetImage('terrain_atlas', 'gameterrain_atlas'); this.map.addTilesetImage('zew5', 'gamezewnetrzne'); this.map.addTilesetImage('all3', 'gameall'); //create layer this.backgroundlayer = this.map.createLayer('backgroundLayer'); this.blockedLayer = this.map.createLayer('blockedLayer'); this.backgroundLayer2 = this.map.createLayer('backgroundLayer2'); this.blockedLayer1 = this.map.createLayer('blockedLayer1'); this.secondLayer = this.map.createLayer('secondLayer'); this.thirdLayer = this.map.createLayer('thirdLayer'); this.funkcje = this.map.createLayer('funkcje'); //collision on blockedLayer this.map.setCollisionBetween(1, 10000, true, 'blockedLayer'); this.map.setCollisionBetween(1, 10000, true, 'blockedLayer1'); this.map.setCollisionBetween(1, 10000, true, 'funkcje'); this.animal = this.game.add.physicsGroup(Phaser.Physics.ARCADE); //this.game.physics.arcade.enable(this.animal); //this.animal.enableBody = true; //this.funkcje.debug = true; //resizes the game world to match the layer dimensions this.backgroundlayer.resizeWorld(); this.createItems(); this.createDoors(); this.createmapa(); //create player // var result = this.findObjectsByType('playerStart', this.map, 'objectsLayer') //this.point = new Phaser.Point(playerx,playery); //this.player = this.game.add.sprite(result[0].x, result[0].y, 'player', 5); //this.player = this.game.add.sprite(this.point.x, this.point.y, 'player', 5); if (zmiennastart != 0){ this.player = this.game.add.sprite(parseInt(playerx), parseInt(playery), 'player', 5); } else {this.player = this.game.add.sprite(parseInt(playerx), parseInt(playery), 'player', 5);} this.game.physics.arcade.enable(this.player ); this.player.anchor.set(.5); this.player.scale.x=70/100; this.player.scale.y=65/100; this.player.body.setSize(25, 60, 0, 5); this.player.body.collideWorldBounds=true; //this.game.debug.body(this.player); //the camera will follow the player in the world this.game.camera.follow(this.player); this.physics.startSystem(Phaser.Physics.Arcade); //this.input.onDown.add(this.moveSprite, this); this.goToX = this.player.x + this.camera.x; this.goToY = this.player.y + this.camera.y; //do ruchu na klick usunac do ruchu na klick i trzymanie //this.game.input.onDown.add(this.movesprite, this); //move player with cursor keys this.cursors = this.game.input.keyboard.createCursorKeys(); this.wasd = { up: this.game.input.keyboard.addKey(Phaser.Keyboard.W), down: this.game.input.keyboard.addKey(Phaser.Keyboard.S), left: this.game.input.keyboard.addKey(Phaser.Keyboard.A), right: this.game.input.keyboard.addKey(Phaser.Keyboard.D), }; this.player.animations.add('left', [ 117, 118, 119, 120, 121, 122, 123],8, true); this.player.animations.add('right', [ 143, 144, 145, 146, 147, 148, 149], 8, true); this.player.animations.add('down', [132, 133, 134, 135, 136, 137, 138], 8,true); this.player.animations.add('up', [105, 106, 107, 108, 109, 110, 111], 8,true); cutleft = this.player.animations.add('cutleft', [ 169, 170, 171, 172, 173], 8); cutright = this.player.animations.add('cutright', [ 195, 196, 197, 198,199],8); cutdown = this.player.animations.add('cutdown', [ 182, 183, 184, 185, 186],8); cutup = this.player.animations.add('cutup', [ 156, 157, 158, 159,160,],8); //this.game.input.onDown.add(this.moveSprite, this); cutleft.onComplete.add(this.animationStopped, this); cutright.onComplete.add(this.animationStopped, this); cutdown.onComplete.add(this.animationStopped, this); cutup.onComplete.add(this.animationStopped, this); this.game.input.onDown.add(this.createeq, this); }, createItems: function() { //create items this.items = this.game.add.group(); this.items.enableBody = true; var result = this.findObjectsByType('item', this.map, 'objectsLayer'); result.forEach(function(element){ this.createFromTiledObject(element, this.items); }, this); this.items.setAll('body.immovable', true); this.items.setAll('body.moves', false); }, createDoors: function() { //create doors this.doors = this.game.add.group(); this.doors.enableBody = true; result = this.findObjectsByType('door', this.map, 'objectsLayer'); result.forEach(function(element){ this.createFromTiledObject(element, this.doors); }, this); }, //find objects in a Tiled layer that containt a property called "type" equal to a certain value findObjectsByType: function(type, map, layer) { var result = new Array(); map.objects[layer].forEach(function(element){ if(element.properties.type === type) { //Phaser uses top left, Tiled bottom left so we have to adjust //also keep in mind that the cup images are a bit smaller than the tile which is 16x16 //so they might not be placed in the exact position as in Tiled element.y -= map.tileHeight; result.push(element); } }); return result; }, //create a sprite from an object createFromTiledObject: function(element, group) { var sprite = group.create(element.x, element.y, element.properties.sprite); //copy all properties to the sprite Object.keys(element.properties).forEach(function(key){ sprite[key] = element.properties[key]; }); }, update: function() { //collision this.game.physics.arcade.collide(this.player, this.blockedLayer); this.game.physics.arcade.collide(this.player, this.blockedLayer1); this.game.physics.arcade.collide(this.player, this.animal, this.stopanimplayer, null, this); this.game.physics.arcade.collide(this.animal, this.animal, this.stopanimzwierz, null, this); this.game.physics.arcade.collide(this.animal, this.blockedLayer, this.stopblocked, null, this); this.game.physics.arcade.collide(this.animal, this.funkcje, this.stopblocked, null, this); this.game.physics.arcade.overlap(this.animal, this.doors, this.stopblocked, null, this); this.game.physics.arcade.collide(this.player, this.funkcje, this.wyborfunkcji, null, this); this.game.physics.arcade.collide(this.player, this.additems); this.game.physics.arcade.collide(this.player, this.items, this.funkcjaitem, null, this); this.game.physics.arcade.overlap(this.player, this.doors, this.enterDoor, null, this); this.game.physics.arcade.overlap(this.player, this.Homedoors, this.enterHomeDoor, null, this); this.game.physics.arcade.collide(this.player, this.eqgroup, this.wyborfunkcji, null, this); this.game.physics.arcade.collide(this.player, this.stol, this.stolf, null, this); //poniżej funkcje od ruchu gracza, animacji, kolizji itp } Jest ktoś w stanie pomóc mi zielonemu w temacie socketu pomóc jakoś ugryźć implementację tego do mojego projektu? Będę bardzo bardzo wdzięczny, to będzie dla mnie spory krok naprzód..
×