Gamekaart voor Browser Games

Door Dennis Smink, 11 jaar geleden, 10.284x bekeken

Hallo iedereen.

Dit is mijn eerste script hier op phphulp.nl, en ben erg benieuwd wat jullie ervan vinden.
Ben er al een tijdje mee bezig geweest, en ik ga de eerste simpele release hier uitgeven.

Doe nog niet zolang iets met classes in PHP, dus als er opmerkingen zijn over mijn geschreven class hoor ik dat graag, zodat ik dat altijd nog kan verbeteren.

Dit gehele script is gemaakt uit PHP, MySQL, Javascript met AJAX requests.

Ook mijn javascript is niet om naar huis te schrijven, dus mocht je vinden dat er iets sneller, beter kan let me know!

Instaleren van het script is relatief simpel, dump het SQL bestand in je phpmyadmin, en stel de configopties in in het bestand: config/config.php

Het gebruik van de verouderde HTML tags ben ik van bewust ( zoals div align center ). Tis alleen ter voorbeeld.

Een voorbeeld van hoe dit script werkt is hier te vinden:

http://www.roller-park.nl/map/

Functie's die vanuit de class te gebruiken zijn:

createMap( $userid )
[ Hierin krijg je de complete map, de variabel $userid kun je dus koppelen aan jouw eigen inlog systeem! Werk je met sessie's, doe je daar dus $_SESSION['userid'] of wat je sessienaam ook is. ]

createObjectList()
[ Hierin krijg je de complete objectlijst die in de mysql table is opgeslagen, je kunt dus heel simpel nieuwe objecten toevoegen! Gewoon een nieuw plaatje uploaden, nieuwe insert in de objectlist tabel doen en je kunt het nieuwe object gelijk gebruiken ]

connectMySQL()
[ Lijkt me vrij duidelijk, verbinden met de mysql server. Dit doe je voordat je de map opvraagt, maar er zit een voorbeeld in het bestand index.php

createObjectEditField()
[ Hierin krijg je de bewerk velden voor het object wat je selecteerd, nu komt er alleen nog maar de naam te staan, verder kan je er nog niets mee ]



Ik weet dat het nog weinig is, maar je kunt objecten simpelweg plaatsen door ergens te klikken, en op een knop onderin te drukken.
Je kunt objecten nog niet verwijderen, dit zal ook zeer snel volgen natuurlijk.. Ik ben nog lekker aan het stoeien met javascript, vind dat het systeem opzich wel lekker werkt. Maar kan altijd beter natuurlijk.
Ik probeer mijn source helemaal error-free te krijgen, zelfs javascript moet gewoon helemaal schoon zijn en goed werken.

Ik zal deze omschrijving verder nog bijvullen.

De overige source zoals images en dergelijke bestanden kunnen worden gedownload via de volgende link: http://www.roller-park.nl/map/MapClass.zip

Gesponsorde koppelingen

PHP script bestanden

  1. index.php
  2. sql.sql
  3. handlemap.php
  4. classmap.php
  5. config.php

 

Er zijn 11 reacties op 'Gamekaart voor browser games'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Bram w
bram w
11 jaar geleden
 
0 +1 -0 -1
Kan je aub de code ook gewoon hier plaatsen, straks is de link dood en dan kunnen we er niets meer mee.

Verder zie ik dat je in handlemap je variablen onnodig aan het kopieren bent.

Ook kun je in je classes ook gewoon __construct gebruiken. :) ook laat je je classes direct html afdrukken wat meestal niet de bedoeling is, vooral niet als je de regels van OOP volgt. ook maak je in je object een database connectie, meestal is het beter om een connectie in de constructor mee te geven.

Voor de rest wel een mooi script, ook een goed voorbeeld. Mischien een idee om ook een gras knopje toe te voegen? ;)
Dennis Smink
Dennis Smink
11 jaar geleden
 
0 +1 -0 -1
@ Bram w:

Ja code ga ik nog hier plaatsen, komt goed.

Het onodig data verzamelen in handlemap weet ik, ga ik nog aanpassen. Leek me nog niet zo'n big deal.

Je onderbouwing snap ik niet, of die mist denk ik, want ik weet dus niet wat __construct betekent, of wat ik ermee moet.
Ik laat html afdrukken vanuit mijn classes, wat niet de bedoeling is -> Waarom niet?

Ook maak ik in mijn object een database connectie meestal is het beter een connectie in de constructor mee te geven -> Waarom? Dit werkt toch ook?

Ik probeer zogoed mogelijk OOP te programeren, om de gebruiksvriendelijkheid te verbeteren.
Het idee om gras toe te voegen komt nog, dat noem ik dan verwijderen. Je kunt dan een object selecteren op de map ( net zoals je gras selecteert ) en het object verwijderen/bewerken oid.
Niels K
Niels K
11 jaar geleden
 
0 +1 -0 -1
Hoi Dennis,

Ik heb de code heel even op PHPhulp geplaatst. Het probleem is dat ik nog geen JS bestanden kan uploaden. Ik heb Bas daarover geïnformeerd dus wat dat betreft nog heel even geduld.

Niels
Dennis Smink
Dennis Smink
11 jaar geleden
 
0 +1 -0 -1
Ah super Niels, dankje.

Laat maar even weten als de JS bestanden geupload kunnen worden, dan zet ik deze erbij. ( Want die is wel nodig haha )
Bram w
bram w
11 jaar geleden
 
0 +1 -0 -1
__construct is gewoon handiger, als je bijvoorbeeld je class hernoemt dan hoef je niet je constructof functie te hernoemen enzo. Ook is het gewoon gemakkelijker om parent::__construct() te doen dan parent::ParentClass();
bron

waarom geen mysql in een class, als ik al bijvoorbeeld een connectie heb om bijvoorbeeld te controleren op nieuwe berichten. dan hoef je geen tweede connectie te openen.

ook is het gewoon omhandig om vanuit je class html te genereren/echoen. als ik bijvoorbeeld de class op een andere manier wil gebruiken dan moet ik vanalles aan gaan passen.
Niels K
Niels K
11 jaar geleden
 
Hoi Dennis,

Wanneer het opgelost is zal ik zelf de bestanden aan dit script toevoegen.
Naast dat, even inhoudelijk het volgende:

Beginnen met de index.php

- Ik mis enige vorm van HTML? Je plaatst diversen HTML tags maar je definieert de HTML tag zelf niet? Dat betekend dus dat de HTML niet valid is. Wanneer je een script maakt en je zet deze in product, of in dit geval je bied het aan als script op phphulp, dien je deze te controleren op (HTML) fouten. Je kan dat doen via de volgende url: klik. Je hebt ook diversen plugins voor diversen browsers om dit te controleren.

- Je commentaar style is een beetje raar? Waarom // en ## gebruiken?

- Je foutafhandeling van de database is raar? Het verbinden met de database doe je wel in een class maar het opvangen van eventueel opgetreden foutmeldingen niet?

Nu iets over je classes / objecten:

Allereerst je 'mapModule':

- Je moet jezelf eerst afvragen, is het wel een 'mapModule' en niet gewoon een map?
- Je database gegevens in dit bestand? Dit is toch aparte configuratie?
- Een map heeft toch niets met het verbinden van een database te maken? Dat hij (evt) gebruik maakt van een database betekend niet dat hij ook voor de connectie moet zorgen. Je moet scherp hebben dat je dit soort zaken moet scheiden.
- Globals zijn uit de boze.

Zo kan ik nog wel heel even doorgaan. Dat betekend dus dat dit script niet library waardig is. Geen paniek, het is alleen de kunst dat we dit script wel library waardig maken.

Daar voor heb ik de volgende tips:

Lees eerst eens deze tutorial door: klik. In die tutorial wordt alles uitgelegd over het Object Georiënteerd programmeren. Nadat je die tutorial een aantal keer hebt gelezen ben je in staat om enigszins de denkwijze van het Object Georiënteerd programmeren te begrijpen.

Je moet ook goed het verschil weten tussen retourneren en echoën. En hoe je dit met methodes kan realiseren. Een methode 'createMap' moet geen HTML code retourneren aangezien die methode alleen een map moet genereren.

Wanneer je vragen hebt, of iets niet zeker weet, mag je dit op het forum vragen.

Tot slot,

Ik zet heel even een melding dat dit script nog moet worden geupdated voordat het daadwerkelijk library waardig is.
Wanneer je aanpassingen hebt gedaan, mag je mij PMen en zal ik (evt) de melding verwijderen.

Veel succes!

Niels Kieviet
Dennis Smink
Dennis Smink
11 jaar geleden
 
0 +1 -0 -1
Bedankt Niels voor je constructieve post, helpt enorm.

Heb de iets nieuwere versie er al opgezet met wat sloridheidjes die verbeterd zijn..
Niels K
Niels K
11 jaar geleden
 
0 +1 -0 -1
Hoi Dennis,

Dankjewel, en geen probleem!

Lees mijn PM over de aanpassingen omtrent de OO gedachte. Wanneer je iets als dat juist toevoegt denk ik dat je een grote stap maakt in de juiste richting.

Niels
Jesse van der Panne
Jesse van der Panne
11 jaar geleden
 
0 +1 -0 -1
Dennis heb je een pb gestuurd. Ik verwacht een reactie
Bob Duisters
Bob Duisters
10 jaar geleden
 
0 +1 -0 -1
Zou of de zip opnieuw kunnen worden toegevoegd of de javascript files?

Bob
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Dennis Smink
Dennis Smink
10 jaar geleden
 
0 +1 -0 -1
http://www.roller-park.nl/MapClass.zip :)

Daar staat alles in - SQL inladen en configuratie bestand aanpassen.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. index.php
  2. sql.sql
  3. handlemap.php
  4. classmap.php
  5. config.php

Labels

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.